大部分在使用shell判斷條件都會用到運算符
!=或者-ne(不等於)
大於 -gt (greater than)
小於 -lt (less than)
小於或等於 -le (less than or equal)
但是我們如果要判斷是否存在某個集合中(相當於sql中的in或者not in),用上面的符號在集合值少的情況下可以分開寫多個,
但要是遇到比較多的,會比較麻煩。
我們可以使用(!)=~來實現,~表示對后面變量值的匹配,語法為:{集合} =~ 變量
舉例:判斷循環中變量i是否存在,1或3,存在輸出OK,不存在輸出NG
集合可以用數組定義,或者直接寫
#!/bin/bash
array=(1,3)
for i in (1..9)
do
if [[ ! "${array[@]}" =~ "${i}" ]];then
echo -e 'NG'
else
echo -e 'OK'
fi
done
或者
#!/bin/bash
for i in (1..9)
do
if [[ ! {1,3} =~ "${i}" ]];then
echo -e 'NG'
else
echo -e 'OK'
fi
done
如有描述有誤或者有更好的寫法,歡迎提出交流!