如何通过将条件和比较点放在旁边而不是长队列中来进行bash中的多次比较?
这样的事情
之前:
if [[ $var == "aaa" || $var == "bbb" || $var == "ccc" || $var == "ddd" ]];
then
echo "good";
fi
之后(我想要的):
if [[ $var==["aaa","bbb","ccc","ddd"] ]];
then
echo "good";
fi
答案 0 :(得分:2)
shopt -s extglob
[[ $var = @(aaa|bbb|ccc|ddd) ]] && echo "good"
答案 1 :(得分:1)
使用bash regex和关键作品=~
:
if [[ $var =~ ^(aaa|bbb|ccc|ddd)$ ]];
then
echo "good";
fi
正如评论中所见,实际上您需要比较int
,而不是strings
,所以:
((var%3 == 0)) && echo "ok"