[英]why does "echo -n" command not work in a .sh script?
例如,我正在 .sh 文件中編寫一個腳本,並且我想在沒有尾隨空格/新行的情況下回顯短語“string”,所以我可能應該使用echo -n "string"
就像我如何實現這一點bash 或 zsh 中的函數。 但是,當我使用sh
命令在 bash/zsh 中運行 .sh 時,.sh 文件只會打印-n string
,並包含一個新行。 如何在不拖尾換行的同時使用echo
命令打印內容?
bash
對echo
命令的實現與 POSIX 規范大不相同。 當bash
運行為sh
, echo
的行為更像是POSIX打算,但你的sh
也可能不是bash
,但像貝殼dash
附着更嚴格的POSIX規范,不允許任何擴展。 POSIX 要求-n
像任何其他參數一樣對待,輸出一些東西而不是修改echo
的行為。
使用printf
代替,它具有更嚴格的 POSIX 規范並且更便攜。
printf 'string'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.