如何使用 if 语句将变量与 bash 中的多个值进行比较
How to use if statement to compare variable with multiple values in bash
我正在尝试创建一个 if 语句来检查一个变量是否不等于多个不同的值。
这是我的代码:
for subID in {1..100}
if [ "${subID}" != 2 8 34 56 89 92 ]
echo "Yes"
else
echo "No"
fi
done
我收到一条错误消息,指出参数过多。有没有一种方法可以在 if 语句中完全对此进行编码,或者我是否应该使用 for 循环将要比较的值设置为单独的变量?
使用 case
语句
for subID in {1..100}; do
case $subID in
2|8|34|56|89|92) echo "Yes" ;;
*) echo "No" ;;
esac
done
或bash扩展通配
shopt -s extglob
for subID in {1..100}; do
if [[ $subID == @(2|8|34|56|89|92) ]]; then
echo Yes
else
echo No
fi
done
我正在尝试创建一个 if 语句来检查一个变量是否不等于多个不同的值。
这是我的代码:
for subID in {1..100}
if [ "${subID}" != 2 8 34 56 89 92 ]
echo "Yes"
else
echo "No"
fi
done
我收到一条错误消息,指出参数过多。有没有一种方法可以在 if 语句中完全对此进行编码,或者我是否应该使用 for 循环将要比较的值设置为单独的变量?
使用 case
语句
for subID in {1..100}; do
case $subID in
2|8|34|56|89|92) echo "Yes" ;;
*) echo "No" ;;
esac
done
或bash扩展通配
shopt -s extglob
for subID in {1..100}; do
if [[ $subID == @(2|8|34|56|89|92) ]]; then
echo Yes
else
echo No
fi
done