Ksh

如何在 KSH 腳本中強制執行選項

  • November 14, 2013

這是在我的腳本中擷取參數的框架:

# 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 強制?如果它們沒有被填充,我可以簡單地拋出一個錯誤(使用二進制變數來查看它們是否被填充)。但我想,存在一種更方便的方法來做到這一點。

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

引用自:https://unix.stackexchange.com/questions/101149