怎么在shell中判断字符串是否存在数组中-创新互联

怎么在shell中判断字符串是否存在数组中?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

目前成都创新互联公司已为成百上千的企业提供了网站建设、域名、网页空间、网站托管维护、企业网站设计、横山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

语法格式:[[ "${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

shell将字符串分隔成数组

#!/bin/bash
a="hello,world,nice,to,meet,you"
#要将$a分割开,先存储旧的分隔符
OLD_IFS="$IFS"

#设置分隔符
IFS="," 

#如下会自动分隔
arr=($a)

#恢复原来的分隔符
IFS="$OLD_IFS"

#遍历数组
for s in ${arr[@]}
do
echo "$s"
done

变量$IFS存储着分隔符,这里我们将其设为逗号 "," OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。
arr=($a)用于将字符串$a按IFS分隔符分割到数组$arr
${arr[0]} ${arr[1]} ... 分别存储分割后的数组第1 2 ... 项
${arr[@]}存储整个数组。
${!arr[@]}存储整个索引值:1 2 3 4 ...
${#arr[@]} 获取数组的长度。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。


分享标题:怎么在shell中判断字符串是否存在数组中-创新互联
URL链接:http://scyanting.com/article/csopep.html