Bash
錯誤 sh:1:讀取:arg 計數
我只想等待使用者通過按確認消息
Return
。在 bash 中,我可以呼叫$ read $
但是,在 sh (在我的情況下是破折號),我得到
$ read sh: 1: read: arg count $
看來我必須提供一個論點?這種差異從何而來?
標準
read
實用程序至少採用一個變數的名稱。某些 shell 的
read
實現使用預設變數,例如REPLY
,如果沒有提供名稱,則儲存讀取的數據,但是dash
,為了成為 POSIX 兼容的 shell,沒有(因為標準不需要這樣做)。dash
外殼中的等價物是read REPLY
即使在其
bash
POSIX 模式下,shell 也會啟用一些非 POSIX 功能*。*這是其中之一,這意味著read
即使您執行bash --posix
shell,沒有變數名也可以工作。有關啟用 POSIX 模式時發生的事情的完整列表
bash
(這個問題實際上與此無關),請參閱https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode。 html