您好,登錄后才能下訂單哦!
怎么在shell中判斷字符串是否存在數(shù)組中?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
語(yǔ)法格式: [[ "${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 "請(qǐng)傳入一個(gè)參數(shù)" fi
擴(kuò)展:
這種方式不僅可以判斷字符串是否存在數(shù)組中,也快判斷字符串是否存在一個(gè)文本中。
## 判斷字符串是否存在文本中 #!/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分割開(kāi),先存儲(chǔ)舊的分隔符 OLD_IFS="$IFS" #設(shè)置分隔符 IFS="," #如下會(huì)自動(dòng)分隔 arr=($a) #恢復(fù)原來(lái)的分隔符 IFS="$OLD_IFS" #遍歷數(shù)組 for s in ${arr[@]} do echo "$s" done
變量$IFS存儲(chǔ)著分隔符,這里我們將其設(shè)為逗號(hào) "," OLD_IFS用于備份默認(rèn)的分隔符,使用完后將之恢復(fù)默認(rèn)。
arr=($a)用于將字符串$a按IFS分隔符分割到數(shù)組$arr
${arr[0]} ${arr[1]} ... 分別存儲(chǔ)分割后的數(shù)組第1 2 ... 項(xiàng)
${arr[@]}存儲(chǔ)整個(gè)數(shù)組。
${!arr[@]}存儲(chǔ)整個(gè)索引值:1 2 3 4 ...
${#arr[@]} 獲取數(shù)組的長(zhǎng)度。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。