sh脚本中的可选参数

时间:2016-11-30 23:05:54

标签: unix

我想知道是否有任何方法可以使用可选的参数来执行脚本。 例如

./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 个答案:

答案 0 :(得分:2)

如果可选参数是最后一个,则可以使用默认值。它首次运作时效果不佳。

使用$#检查传入的参数数量。

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

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