这是在案例陈述之前。在没有任何输入的情况下执行时仍然没有输出任何内容。
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
答案 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循环之后,很可能是一个错字。