Если у вас есть список чисел для преобразования и вы хотите избежать вызова функции и создания подоболочки для каждого символа, вы можете заранее определить набор ascii:
ascii=$(for x in {0..9} {A..F}; do for y in {0..9} {A..F}; do echo -ne "\x$x$y"; done; done)
Обратите внимание, что нулевой символ исключается, поэтому каждый символ смещается на 1.
Затем используйте что-то вроде этого (предполагает 1 число в строке):
while read c; do out+="${ascii:$c-1:1}"; done <<< "$in"
echo "$out"
У меня была такая же проблема в PuppyLinux, где я мог ввести ), но не 0 . Затем я попробовал другой дистрибутив Linux, чтобы убедиться, что он работает.
Вот как я сделал ошибку :Я недавно добавил новую привязку клавиш и по ошибке ввел неверный код (Я не помню какой )но это то, что мешало символу 0
.
(Примечание :мой оконный менеджер jwm
или оконный менеджер Джо, но на самом деле не имеет значения, какой дистрибутив или оконный менеджер вы используете.)
Заключение:проверьте все новые сочетания клавиш, добавленные с тех пор, как возникла проблема, либо из новой программы, устанавливающей свои собственные сочетания клавиш, либо из того, что вы добавили сами.
У меня была та же проблема, что и у вас. Знак:=
не работал ни на настоящей, ни на виртуальной клавиатуре, а знак +
работал.
Я просто оставлю это сообщение здесь на случай, если оно поможет хотя бы одному человеку :Мне удалось решить эту проблему, нажав Alt + Z и вернув сочетания клавиш по умолчанию.
Оказывается, мой знак =
был сочетанием клавиш Windows... Ярлыком чего? Не знаю, но это точно была копия -, вклеившая все эти =
знаки.