2016-11-30 38 views
0

我想知道是否有任何方法可以用可選的參數執行腳本。 例如sh腳本中的可選參數

./script (optional parameter X) path 

所以,鍵入./script /Users/name/Documents將執行某些功能(我認爲如果聲明將是至關重要的)和./script X Users/mcichecki/Documents將執行其他功能。 我試圖用可選的參數來做到這一點,它不工作:

ARG1=${1:-R} 

    if [ "$1" = "X" ]; 
    then 
     first_function 
    else 
     second_function 
    fi 

回答

1

如果可選參數是最後一個,你可以使用默認值。它在第一次時效果不佳。

使用$#檢查中均通過了參數的個數。

case $# in 
    1) ARG1=-R; ARG2=$1;; 
    2) ARG1=$1; ARG2=$2;; 

    *) echo "Usage: $0 [parameterX] path" >&2; exit 1;; 
esac