![Como passo caracteres hexadecimais para printf em um comando de script?](https://rvso.com/image/231049/Como%20passo%20caracteres%20hexadecimais%20para%20printf%20em%20um%20comando%20de%20script%3F%20.png)
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 executando o script./teste.shproduz
\x41\x42%
Como faço para que o script produza os mesmos resultados do prompt do shell?
Responder1
Tente usar o printf
utilitário externo:
/usr/bin/printf "\x41\x42"
Você provavelmente tem um bash
shell, mas como seu shell interativo, enquanto sh
está vinculado ao dash
.
O dash
integrado printf
não sabe \xNN
, então você deve usar valores octais, \0NN
em vez disso.
O bash
embutido printf
sabe\xNN