如何在getopts命令

时间:2018-04-07 09:51:24

标签: linux bash shell centos getopts

这是在案例陈述之前。在没有任何输入的情况下执行时仍然没有输出任何内容。

 while getopts :x:y:z: OPT; do
 if [ $OPT == "" ]; then
 echo "Null"
 exit 10
 fi

另外,我应该如何对此进行编码以执行任何位置/顺序中的值? 如:

 .\project -x 120 -y 170 -z Car
 .\project -y 170 -z Car -x 120

1 个答案:

答案 0 :(得分:0)

您可以先测试是否没有传递任何参数并退出(这在getopts循环之前发生):

if [ $# -eq 0 ]; then
  usage # Call usage function or echo some usage message
  exit 
fi

没有办法强迫强制性参数。你可以做的是在getopts循环完成后测试一定的值 如果-x是强制选项,并且用于设置var变量,请测试是否已经由getopts循环设置它,如果是,则打印相关消息并且退出:

if [ -z ${var+x} ]; then
 echo "No -x argument supplied. exiting"
 exit 10
fi

以上是在案例陈述之后运行的。

另外,你错过了一个完成的'在你的while循环之后,很可能是一个错字。