Bash數組-判斷某個元素是否在數組內的幾種方法


聲明一個數組array,一個待測試元素var

array=(
element1
element2
element3
)

var="element1"

接下來用幾種方法來分別測試var是否是array中的元素

判斷方法1:

echo "${array[@]}" | grep -wq "$var" &&  echo "Yes" || echo "No"

判斷方法2:

for i in ${array[@]}
do
   [ "$i" == "$var" ] && echo "yes"
done

判斷方法3:這是個人感覺最巧妙的一種測試方法,使用了bash數組的內置方法。

[[ ${array[@]/${var}/} != ${array[@]} ]] && echo "Yes" || echo "No"

測試演示

# 聲明數組array、變量var
[root(0)@thatsit ~]# array=(
> element1
> element2
> element3
> )
[root(0)@thatsit ~]#
[root(0)@thatsit ~]# var="element1"
# 確認數組和變量值
[root(0)@thatsit ~]# echo ${array[@]}
element1 element2 element3
[root(0)@thatsit ~]# echo $var
element1
[root(0)@thatsit ~]#
# 判斷方法1
[root(0)@thatsit ~]# echo "${array[@]}" | grep -wq "$var" &&  echo "Yes" || echo "No"
Yes
[root(0)@thatsit ~]#
# 判斷方法2
[root(0)@thatsit ~]# for i in ${array[@]}
> do
>    [ "$i" == "$var" ] && echo "yes"
> done
yes
[root(0)@thatsit ~]#
# 判斷方法3
[root(0)@thatsit ~]# [[ ${array[@]/${var}/} != ${array[@]} ]] && echo "Yes" || echo "No"
Yes
[root(0)@thatsit ~]#


免責聲明!

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



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