2016-11-30 8 views
0

オプションの引数を指定してスクリプトを実行する方法があるのだろうかと思います。例shスクリプトのオプションの引数

./script (optional parameter X) path 

については だから./script /Users/name/Documentsが特定の機能を実行します(私は、if文が重要になることを想定)と./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 
関連する問題