Como gerar um caractere ascii em uma string com Bash/ZSH corretamente?

Como gerar um caractere ascii em uma string com Bash/ZSH corretamente?

Estou tentando gerar uma string de 10seguida de a NULL( \0) seguida de a 10.

No entanto, echo "10\010"parece não funcionar (suponho que gera dois caracteres - a 10seguido por \010. Não tenho certeza de como separar/escapar desses valores/caracteres?

Eu também tentei echo "10""/0""10"o que teve o mesmo resultado.

Estou canalizando essa saída para um pipe nomeado.

Responder1

Em um shell compatível com POSIX você poderia usar:

echo '10\000010'

observe que echosão necessários três números octais após a \0para encerrar uma sequência de escape octal.

O problema no seu caso é que bashnão é compatível com POSIX, pois não implementa XSIo suporte necessário para uma variante do UNIX não incorporada.

bashno entanto, suporta parcialmente printfe então você pode usar:

printf '10\00010\n'

informação relacionada