我正在嘗試使用 ANSI-C 帶引號的字串將二進位字串傳送到程式。這工作正常:
echo $'\x23\x51\x66\x39\x01\x5f\x2f' | cat -v
# output: #Qf9^A_/
但是,如果資料中有 NUL 字元(ASCII 代碼 0),它將終止字串:
echo $'\x23\x00\x66\x39\x01\x5f\x2f' | cat -v
# output: #
我知道 C 語言中的字串是以 null 結尾的,所以我猜類似的限制也適用於這種引用方法。
有沒有辦法將 ASCII 0 發送到我的程式?
答案1
嘗試使用printf
而不是echo
.
$ printf "\x23\x00\x66\x39\x01\x5f\x2f" | od -c
0000000 # \0 f 9 001 _ /