溫馨提示×

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

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

Shell兩種for循環(huán)怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2021-03-20 13:55:01 來(lái)源:億速云 閱讀:149 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Shell兩種for循環(huán)怎么實(shí)現(xiàn),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

前言:

  生產(chǎn)環(huán)境中的應(yīng)用場(chǎng)景:根目錄下建立數(shù)量不等的目錄,掛載不同的硬盤,按sdb-sdn的順序?qū)?yīng)/data2-/datan,就需要for循環(huán)嵌套來(lái)解決,寫成如for i in 1 2 3 ,for j in a b c,1a,2b,3c這樣而for循環(huán)似乎并不支持for的一一對(duì)應(yīng),寫出來(lái)執(zhí)行的話,會(huì)變成第一個(gè)循環(huán)只對(duì)應(yīng)第二個(gè)循環(huán)的第一個(gè)變量的這種情況,花了點(diǎn)時(shí)間嘗試,最終用兩種不同的方式得以實(shí)現(xiàn),分別是使用第三個(gè)變量替代和使用數(shù)組為變量編號(hào)的方法,直接用實(shí)例來(lái)說(shuō)明:

變量替代:

  簡(jiǎn)單的說(shuō)就是先插入一條不相干的數(shù)據(jù),然后使用sed來(lái)進(jìn)行替換。

for i in $every;do
#$erery表示系統(tǒng)掛載的硬盤,挨個(gè)分區(qū),并將臟數(shù)據(jù)wwwdata1以配置文件格式寫入fstab

    parted -s /dev/$i mklabel gpt &>/dev/null || echo "${i}part01出現(xiàn)問(wèn)題,請(qǐng)檢查"
    parted -s /dev/$i mkpart Primary 1 `parted /dev/$i p|grep "^Disk"|cut -d ":" -f2` &>/dev/null || echo "${i}part02出現(xiàn)問(wèn)題,請(qǐng)檢查"
    mkfs -T largefile -t ext4 -b 4096 -m 2 /dev/${i}1 &>/dev/null || echo "${i}mkfs出現(xiàn)問(wèn)題,請(qǐng)檢查"
    echo "/dev/${i}1 /wwwdata1 ext4 defaults 0 0" >> /etc/fstab
    echo "-${i}磁盤格式化分區(qū)完成-" && sleep 2
done
for a in $foldername;do

#$foldername表示文件夾名稱,使用sed替換wwwdata1,每次使用變量替換一次wwwdata1,即可達(dá)成目的。
sed -i 0,/wwwdata1/s//${a}/ /etc/fstab && echo "-${a}文件夾已掛載磁盤-" && sleep 1 || echo "-${a}掛載失敗-" done

數(shù)組:

  將需要對(duì)應(yīng)的元素分別放入兩個(gè)數(shù)組,然后使用for循環(huán)來(lái)按元素下標(biāo)進(jìn)行調(diào)用。舉個(gè)簡(jiǎn)單點(diǎn)的例子,大家能看懂就好了:

#!/bin/bash
file=(1 2 3)
disk=(a b c)
for i in `seq 0 2`;do
    echo "${file[i]}${disk[i]}"
done

實(shí)際上的應(yīng)用呢,這兩種方法都是可以的,但顯而易見(jiàn),第二種方法更科學(xué),腳本的健壯性更好。

看完了這篇文章,相信你對(duì)“Shell兩種for循環(huán)怎么實(shí)現(xiàn)”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向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