Como faço para que o printf produza caracteres hexadecimais quando executado a partir de um script?
Suponha que eu esteja no prompt e digite printf "\x41\x42" a saída que recebo
AB%
No entanto, se eu tiver um script contendo essa linha, ou seja, cat test.sh
produz
printf "\x41\x42"
Mas executar o script ./test.sh produz
\x41\x42%
Como faço para que o script produza os mesmos resultados do prompt do shell?
Tente usar o
printf
utilitário externo:Você provavelmente tem um
bash
shell, mas como seu shell interativo, enquantosh
está vinculado aodash
.O
dash
integradoprintf
não sabe\xNN
, então você deve usar valores octais,\0NN
em vez disso.O
bash
embutidoprintf
sabe\xNN