Como passo caracteres hexadecimais para printf em um comando de script?

Como passo caracteres hexadecimais para printf em um comando de script?

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.shproduz

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 printfutilitário externo:

/usr/bin/printf "\x41\x42"

Você provavelmente tem um bashshell, mas como seu shell interativo, enquanto shestá vinculado ao dash.

O dashintegrado printfnão sabe \xNN, então você deve usar valores octais, \0NNem vez disso.

O bashembutido printfsabe\xNN

informação relacionada