我知道這是某種特殊字符問題,但我不知道如何解決它。在shell中回顯-n沒有打印正確的東西
我在控制檯
echo "-n"
並沒有什麼鍵入Get印刷:(
我也
echo -e "-n"
試圖執行特殊字符(一個來自序列逃脫),但再次什麼都沒有發生
我該如何打印「-n」?
我知道這是某種特殊字符問題,但我不知道如何解決它。在shell中回顯-n沒有打印正確的東西
我在控制檯
echo "-n"
並沒有什麼鍵入Get印刷:(
我也
echo -e "-n"
試圖執行特殊字符(一個來自序列逃脫),但再次什麼都沒有發生
我該如何打印「-n」?
這裏有一種方法:
[email protected]:~$ echo -e '\x2dn'
-n
它會把-
爲\x2d
。
一個更詳細的方式是單獨打印兩個字符:
[email protected]:~$ echo -n -; echo n
-n
這裏,-n
指示第一echo
不打印一個換行;它與正在打印的-n
無關。 :)
回聲的POSIX定義不能保證這個工作。實際上,echo -e沒有在其輸出中打印「-e」的任何實現都違反了標準,只有'-n'是唯一允許的選項[並且,雖然允許,但沒有明確定義: echo -n'只是使輸出不確定,因此不再需要符合任何特定的規範]。 –
在bash中,當'set -o posix'也被啓用時,'shopt -s xpg_echo'使其符合'echo'標準,這意味着這裏給出的'echo -e' hack將不再起作用。 –
嘗試
printf "%s\n" -n
或
printf "%s\n" '-n'
是的,'printf'比'echo'更加強大和一致。 –
令人印象深刻的,我從來沒有過這個問題上運行。好的! – wallyk