基于shell的数组遍历,判断变量是否包含数组内的值

已邀请:
array=(不重启 不需要重启 无需重启 无须重启 不用重启 不要重启 不需重启)
for(( i=0;i<${#array[@]};i++))
do
if [[ "${patch_full_name}" =~ "${array[i]}" ]]
then
echo ${array[i]}
needreboot=0
echo "监测到不重启补丁!"
fi
done


语法格式: [[ "${array[@]}" =~ "字符串" ]]

示例:

#!/bin/sh
##数组
array=(
address
base
cart
company
store
)

# $1 如果存在,输出 $1 exists,$1 如果不存在,输出 $1 not exists
if [ "$1" != null ];then
if [[ "${array[@]}" =~ "${1}" ]]; then
echo "$1 exists"
elif [[ ! "${array[@]}" =~ "${1}" ]]; then
echo "$1 not exists"
fi
else
echo "请传入一个参数"
fi

扩展:
这种方式不仅可以判断字符串是否存在数组中,也快判断字符串是否存在一个文本中。

## 判断字符串是否存在文本中
#!/bin/sh

names="This is a computer , I am playing games in the computer"
if [[ "${names[@]}" =~ "playing" ]]; then
echo '字符串存在'
fi


if [[ ! "${array[@]}" =~ $val ]] ; then

fi

要回复问题请先登录注册