KSHスクリプトでオプションを強制する方法

KSHスクリプトでオプションを強制する方法

私のスクリプトでパラメータをキャプチャするための基本構造は次のとおりです。

# fMain(){

        while getopts "d:e:h" _OPTION; do
                case $_OPTION in
                d)                              
                        dateVal=$OPTARG
                        ;;
                e)
                        extensionVal=$OPTARG
                        fListArgument "OPN_BYPASS" $OPTARG
                        ;;
                h)
                        fToonHelp
                        ;;
                \?)     echo "Please run '$0 -h' for help"
                        vARG_VLAG="Y"
                        ;;
                esac
        done

        exit 0

オプションdとeを必須にする方法は?入力されていない場合は、単にエラーを発生させることができます(バイナリ変数を使用して入力されたことを確認)。しかし、もっと便利な方法があると思いました。

ベストアンサー1

if [ -z "$dateVal" ]; then
           printf "Option -d must be specified\n"
           exit
fi
if [ -z "$extensionVal" ]; then
           printf "Option -e must be specified\n"
           exit
fi

おすすめ記事