shell中判斷變量是否存在某個集合中


大部分在使用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

如有描述有誤或者有更好的寫法,歡迎提出交流!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM