作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这放在 case 语句之前。在没有任何输入的情况下执行时,它仍然不输出任何内容。
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
最佳答案
您可以先测试是否根本没有传递任何参数并退出(这发生在 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
上面的语句在 case 语句之后运行。
此外,您在 while 循环后遗漏了“完成”,很可能是错字。
关于linux - getopts命令没有输入时如何回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49706053/
我是一名优秀的程序员,十分优秀!