![スクリプトコマンドで16進文字をprintfに渡すには? [コピー]](https://linux33.com/image/231049/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A716%E9%80%B2%E6%96%87%E5%AD%97%E3%82%92printf%E3%81%AB%E6%B8%A1%E3%81%99%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
スクリプトで実行するときにprintfに16進文字を出力させるにはどうすればよいですか?
プロンプトに入力するとします。 printf "\x41\x42"私が得た結果
AB%
cat test.sh
ただし、次の行を含むスクリプトがある場合
printf "\x41\x42"
しかし、スクリプトを実行すると./test.sh生産する
\x41\x42%
スクリプトがシェルプロンプトと同じ結果を生成するにはどうすればよいですか?
答え1
外部printf
ユーティリティを試してください。
/usr/bin/printf "\x41\x42"
シェルがあるかもしれませんが、bash
対話型シェルとしてwhilesh
はdash
。
dash
組み込み関数はprintf
これを知らないので、\xNN
代わりに8進数値を使用する必要があります\0NN
。
内臓は知っbash
ているprintf
\xNN