怎么在shell中判斷字符串是否存在數(shù)組中?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
目前成都創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設(shè)計、橫山網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。語法格式:[[ "${array[@]}" =~ "字符串" ]]
示例:
#!/bin/sh ##數(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 "請傳入一個參數(shù)" fi
擴展:
這種方式不僅可以判斷字符串是否存在數(shù)組中,也快判斷字符串是否存在一個文本中。
## 判斷字符串是否存在文本中 #!/bin/sh names="This is a computer , I am playing games in the computer" if [[ "${names[@]}" =~ "playing" ]]; then echo '字符串存在' fi
shell將字符串分隔成數(shù)組
#!/bin/bash a="hello,world,nice,to,meet,you" #要將$a分割開,先存儲舊的分隔符 OLD_IFS="$IFS" #設(shè)置分隔符 IFS="," #如下會自動分隔 arr=($a) #恢復(fù)原來的分隔符 IFS="$OLD_IFS" #遍歷數(shù)組 for s in ${arr[@]} do echo "$s" done
變量$IFS存儲著分隔符,這里我們將其設(shè)為逗號 "," OLD_IFS用于備份默認的分隔符,使用完后將之恢復(fù)默認。
arr=($a)用于將字符串$a按IFS分隔符分割到數(shù)組$arr
${arr[0]} ${arr[1]} ... 分別存儲分割后的數(shù)組第1 2 ... 項
${arr[@]}存儲整個數(shù)組。
${!arr[@]}存儲整個索引值:1 2 3 4 ...
${#arr[@]} 獲取數(shù)組的長度。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。