如何判断一个变量是否包含在数组里面 判断shell数组中是否存在某个值

来自linux中国网wiki
docker>Evan2017年4月6日 (四) 09:11的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索
ARR=(2 4 6 8)
v=4
if [[ "${ARR[@]}" =~ $v ]] ; then
#if echo "${ARR[@]}" | grep -w "2" &>/dev/null; then
echo "Found"
fi
#解说   =~ 左面是输出数组的所有值 =~ 右面是设定变量的值 然后 看右面的值 是否在左面输出的里面 ,如果在就为真,这个好像和awk的一样吧,左面可以完全等于右面,也可以包涵右面但是不能被右面包涵

参考

http://bbs.chinaunix.net/thread-3727636-1-1.html http://www.codelast.com/tag/%E5%88%A4%E6%96%AD%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E5%90%A6%E5%9C%A8shell%E6%95%B0%E7%BB%84%E4%B8%AD/