如何使用 Bash / ZSH 正確產生字串中的 ascii 字元?

如何使用 Bash / ZSH 正確產生字串中的 ascii 字元?

我正在嘗試生成一個字串,10後跟NULL( \0) 後跟10.

但是echo "10\010"似乎不起作用(我猜它會生成兩個字元 - a10後跟\010。我不知道如何分隔/轉義這些值/字元?

我也嘗試過,echo "10""/0""10"結果相同。

我正在將此輸出傳輸到命名管道。

答案1

在 POSIX 相容的 shell 中,您可以使用:

echo '10\000010'

請注意,echoa 後面需要三個八進制數來\0終止八進制轉義序列。

您的情況的問題是bash在這種情況下不符合 POSIX,因為它沒有實現XSI非嵌入式 UNIX 變體所需的支援。

bash但是部分支持printf,因此您可以使用:

printf '10\00010\n'

相關內容