簡體   English   中英

為什么“echo -n”命令在 .sh 腳本中不起作用?

[英]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命令打印內容?

bashecho命令的實現與 POSIX 規范大不相同。 bash運行為shecho的行為更像是POSIX打算,但你的sh也可能不是bash ,但像貝殼dash附着更嚴格的POSIX規范,不允許任何擴展。 POSIX 要求-n像任何其他參數一樣對待,輸出一些東西而不是修改echo的行為。

使用printf代替,它具有更嚴格的 POSIX 規范並且更便攜。

printf 'string'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM