Próbuję zrobić kilka sztuczek z dd. Myślałem, że możliwe będzie przechowywanie niektórych wartości szesnastkowych w zmiennej o nazwie „nagłówek”, aby przesłać je do dd.
Mój pierwszy krok bez zmiennej był następujący:
$ echo -ne "\x36\xc9\xda\x00\xb4" |dd of=hex
$ hd hex
00000000 36 c9 da 00 b4 |6....|
00000005
Potem próbowałem tego:
$ header=$(echo -ne "\x36\xc9\xda\x00\xb4")
$ echo -n $header | hd
00000000 36 c9 da b4 |6...|
00000004
Jak widać straciłem swoją \x00
wartość w $header
zmiennej. Czy ktoś ma wyjaśnienie tego zachowania? Doprowadza mnie to do szału.
header="$(echo -ne "\x36\xc9\xda\x00\xb4")"; echo -n "$header" | hd
taki sam wynik.
header="\x36\xc9\xda\x00\xb4"; echo -n "$header" | hd
, ale nie jest tym samym, co przechowywanie postaci czytelnej dla człowieka.
bash: warning: command substitution: ignored null byte in input
.