我正在编写bash脚本来设置不同类型的恢复。我正在设置一个“if”语句来比较多个变量。
restore=$1
if [ "$restore" != "--file" ] || [ "$restore" != "--vhd"] || [ "$restore" != "--vm" ]
then
echo "Invalid restore type entered"
exit 1
fi
我所寻找的是看看是否有一种更简单的方法可以将所有这些条件放在一组括号中,比如在Python中。在Python中,我可以这样运行它:
import sys
restore = sys.argv[1]
if restore not in ("--file", "--vhd", "--vm"):
sys.exit("Invalid restore type entered")
所以,基本上,有没有一个巴什替代?
最佳答案
使用扩展模式:
shopt -s extglob
restore=$1
if [[ $restore != @(--file|--vhd|--vm) ]]
then
echo "Invalid restore type entered"
exit 1
fi
或者使用regex:
restore=$1
if [[ ! $restore =~ ^(--file|--vhd|--vm)$ ]]
then
echo "Invalid restore type entered"
exit 1
fi
关于bash - bash :如果则声明多个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18865147/