溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在shell中判斷字符串是否存在數(shù)組中

發(fā)布時(shí)間:2021-03-19 16:04:22 來(lái)源:億速云 閱讀:497 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

怎么在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ì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI