语法格式: [[ \"${array[@]}\" =~ \"字符串\" ]]
示例:
#!/bin/sh##数组array=(addressbasecartcompanystore)# $1 如果存在,输出 $1 exists,$1 如果不存在,输出 $1 not existsif [ \"$1\" != null ];thenif [[ \"${array[@]}\" =~ \"${1}\" ]]; thenecho \"$1 exists\"elif [[ ! \"${array[@]}\" =~ \"${1}\" ]]; thenecho \"$1 not exists\"fielseecho \"请传入一个参数\"fi
扩展:
这种方式不仅可以判断字符串是否存在数组中,也快判断字符串是否存在一个文本中。
## 判断字符串是否存在文本中#!/bin/shnames=\"This is a computer , I am playing games in the computer\"if [[ \"${names[@]}\" =~ \"playing\" ]]; thenecho \'字符串存在\'fi
shell将字符串分隔成数组
#!/bin/basha=\"hello,world,nice,to,meet,you\"#要将$a分割开,先存储旧的分隔符OLD_IFS=\"$IFS\"#设置分隔符IFS=\",\"#如下会自动分隔arr=($a)#恢复原来的分隔符IFS=\"$OLD_IFS\"#遍历数组for s in ${arr[@]}doecho \"$s\"done
变量$IFS存储着分隔符,这里我们将其设为逗号 \”,\” OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。
arr=($a)用于将字符串$a按IFS分隔符分割到数组$arr
${arr[0]} ${arr[1]} … 分别存储分割后的数组第1 2 … 项
${arr[@]}存储整个数组。
${!arr[@]}存储整个索引值:1 2 3 4 …
${#arr[@]} 获取数组的长度。
到此这篇关于shell 判断字符串是否存在数组中的实现示例的文章就介绍到这了,更多相关shell 判断字符串在数组中内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- shell脚本字符串和数组的使用操作方法