Я пытаюсь сделать некоторые трюки с дд. Я думал, что было бы возможно сохранить некоторые шестнадцатеричные значения в переменной с именем "header", чтобы передать его в dd.
Мой первый шаг без переменной был такой:
$ echo -ne "\x36\xc9\xda\x00\xb4" |dd of=hex
$ hd hex
00000000 36 c9 da 00 b4 |6....|
00000005
После этого я попробовал это:
$ header=$(echo -ne "\x36\xc9\xda\x00\xb4")
$ echo -n $header | hd
00000000 36 c9 da b4 |6...|
00000004
Как вы можете видеть, я потерял свое \x00
значение в $header
переменной. У кого-нибудь есть объяснение этому поведению? Это сводит меня с ума.
header="$(echo -ne "\x36\xc9\xda\x00\xb4")"; echo -n "$header" | hd
но это просто дает тот же результат.
header="\x36\xc9\xda\x00\xb4"; echo -n "$header" | hd
, но это не то же самое, что хранить читаемую человеком форму.
bash: warning: command substitution: ignored null byte in input
.