Shell兩種for循環(huán)對(duì)應(yīng)實(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)用呢,這兩種方法都是可以的,但顯而易見,第二種方法更科學(xué),腳本的健壯性更好。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- shell中的for循環(huán)用法詳解
- linux shell循環(huán):for、while、until用法詳解
- linux shell常用循環(huán)與判斷語(yǔ)句(for,while,until,if)使用方法
- Shell腳本用for循環(huán)遍歷參數(shù)的方法技巧
- shell for循環(huán)、循環(huán)變量值付給其他shell腳本的方法
- 基于Shell中for循環(huán)的幾個(gè)常用寫法分享
- Shell中的for和while循環(huán)詳細(xì)總結(jié)
- Shell中的for循環(huán)總結(jié)
- Shell中的循環(huán)語(yǔ)句for、while、until實(shí)例講解
相關(guān)文章
Linux各項(xiàng)目環(huán)境部署記錄(換服務(wù)器部署腳本整理)
每次換便宜的服務(wù)器都要導(dǎo)致環(huán)境重新部署一遍,十分麻煩,于是把每次部署的腳本整理了一下,方便在服務(wù)器上快速進(jìn)行部署,基于?CentOS2023-05-05shell腳本中/bin/bash的作用引號(hào)與括號(hào)的使用小結(jié)
shell腳本通常第一句是#!/bin/bash,在很多情況中,如果沒有設(shè)置好這一行,那么該程序很可能無(wú)法執(zhí)行,#!/bin/bash是指此腳本使用/bin/bash來(lái)解釋執(zhí)行,本文給大家介紹shell腳本中/bin/bash的作用,引號(hào)與括號(hào)的使用,感興趣的朋友一起看看吧2023-12-12Linux忘記root密碼進(jìn)入單用戶模式切換運(yùn)行級(jí)別切換用戶
這篇文章主要介紹了Linux忘記root密碼進(jìn)入單用戶模式切換運(yùn)行級(jí)別切換用戶,需要的朋友可以參考下2019-08-08linux中編寫自己的并發(fā)隊(duì)列類(Queue 并發(fā)阻塞隊(duì)列)
這篇文章主要介紹了linux中編寫并發(fā)隊(duì)列類,功能有:并發(fā)阻塞隊(duì)列、有超時(shí)限制、有大小限制2013-12-12利用shell腳本遍歷文件夾內(nèi)所有的文件并作整理統(tǒng)計(jì)的方法
今天小編就為大家分享一篇利用shell腳本遍歷文件夾內(nèi)所有的文件并作整理統(tǒng)計(jì)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Linux shell命令統(tǒng)計(jì)某列去重后的值
今天小編就為大家分享一篇關(guān)于Linux shell命令統(tǒng)計(jì)某列去重后的值,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02