String
連接作為參數傳遞的字元串,以空字元作為分隔符
我正在尋找一個帶有任意數量參數的 CLI 工具 $ a, $ 乙, $ c, $ d 等,並寫入
$a"\0"$b"\0"$c"\0"$d
標準輸出。是否有一個標準工具可以做到這一點,我可以在 CLI 管道的開頭使用它?我的實現echo
似乎不允許自定義分隔符。
printf
幾乎可以解決這個問題:printf "%s\0" "$a" "$b" "$c" ...
printf
盡可能多地重複其格式字元串,在這種情況下,每個參數一次,因此您最終會得到每個參數後跟一個空字節。要擺脫最後一個空字節,請使用 GNU
head
:printf "%s\0" "$a" "$b" "$c" ... | head -c-1
Zsh 的內置
print -rNn "$a" "$b" "$c" ...
(
-r
禁用轉義處理,-N
列印由空字節分隔和終止的參數,-n
禁用終端換行符。感謝steeldriver的提示!)