您好,登錄后才能下訂單哦!
怎么在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[@]} 獲取數組的長度。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。