【发布时间】:2020-12-30 00:52:35
【问题描述】:
我想在 bash 中检查多个变量,但结果太多了,有什么办法可以缩短这个
我是这样的
if [[ $1 == -a || $2 == -a || $3 = -a ]] && [[ $1 == -b || $2 == -b || $3 = -b ]] && [[ $1 == -c || $2 == -c || $3 = -c ]] && [ $# -eq 4 ]; then
echo "insert some words"
exit
fi
我试过这个来缩短它,但不起作用
a=-a
b=-b
c=-c
if [[ ${@:1:3} == $a || ${@:1:3} == $b || ${@:1:3} == $c ]] && [ $# -eq 4 ]; then
echo "insert some words"
exit
fi
有什么办法可以缩短这个吗? 提前致谢!
【问题讨论】:
-
你可以使用
getopts为你做参数解析。 -
-a,-b.-c 选项是取值还是标志?展示你如何调用程序。
-
这也是BashFAQ #35的话题。
-
@glennjackman 选项应该采用多个值来执行代码,如果它只有 1 个值,那么它会退出。
-
@BenjaminW。谢谢!我会试试这个
标签: bash