Как правильно сгенерировать символ ASCII в строке с помощью Bash / ZSH?

Как правильно сгенерировать символ ASCII в строке с помощью Bash / ZSH?

Я пытаюсь сгенерировать строку, 10за которой следует NULL( \0), а затем 10.

Однако, echo "10\010"похоже, это не работает (я предполагаю, что он генерирует два символа - a, 10за которым следует \010. Я не уверен, как разделить / экранировать эти значения / символы?

Я тоже попробовал, echo "10""/0""10"результат тот же.

Я передаю этот вывод в именованный канал.

решение1

В оболочке, совместимой с POSIX, вы можете использовать:

echo '10\000010'

обратите внимание, что для завершения восьмеричной управляющей последовательности echoтребуется три восьмеричных числа после a .\0

Проблема в вашем случае в том, что он bashне соответствует стандарту POSIX, поскольку не реализует XSIподдержку, необходимую для невстроенного варианта UNIX.

bashоднако частично поддерживает printfи поэтому вы можете использовать:

printf '10\00010\n'

Связанный контент