2012-09-30 45 views
1

假設我有一個腳本,需要兩個參數,有沒有辦法來檢查,如果有一個參數或2+爭論說形式:參數入住慶典

if [ check if arguments don't equal 2 ]; then 
    echo Too many arguments 
    exit 1 
fi 
+0

您是否已經嘗試過「man bash」?你從手冊頁中看不到什麼? – atk

+2

如果他們被告知'參數過多',那麼調用腳本時無參數的人會感到驚訝。如果你期望有兩個參數,那麼這個消息可能應該是'echo'的用法:使用:從$ 0到$>&2,標識命令(通過'$ 0')和正確的用法,並將信息發送到標準錯誤所以它不會在管道中丟失)。我的大多數腳本都使用'$(basename $ 0 .sh)'來標識正在運行的命令。 –

回答

5
if [ $# -ne 2 ]; then 
    # Number of arguments was not 2 
fi 

變量$#持有傳遞參數的數量。

+3

如果這是專門針對'bash'(而不是任何POSIX兼容的shell),更可讀的替代方案是'if(($#!= 2)); then'。 – chepner