Bashを使用してバイナリファイルに16進値を書き込む

Bashを使用してバイナリファイルに16進値を書き込む

バイナリファイルに特定の数のゼロを自動的に書き込むには?

私は書く:

#!/bin/bash
for i in {0..127};
do
    echo -e -n "\x00" >> file.bin
done

ただし、Bless 出力ビュー ファイルを使用する2D 65 20 2D 6E 20 5C 78 30 30 0A場合-e -n \x00

ベストアンサー1

printf携帯性が必要ですそして8進数の文字エスケープをサポートします。

i=0
while [ "$i" -le 127 ]; do
    printf '\000'
    i=$((i+1)) 
done >> file.bin

printfそのように16進エスケープをサポートする必要はありませんが、\x00多くのシェルではサポートされています。)

バラよりなぜprintfがechoより優れているのですか?問題が発生しましたecho

おすすめ記事