日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Unix文件備份利用While解決文件等待問(wèn)題( 二 )


其次需要了解操作語(yǔ)句的編寫技巧 。有時(shí)候?yàn)榱藢?shí)現(xiàn)某些特定的需求,往往在while循環(huán)結(jié)構(gòu)內(nèi)部的操作語(yǔ)句部分,不會(huì)寫一些實(shí)際的操作語(yǔ)句 。而是將操作語(yǔ)句寫在循環(huán)的外部 。如上面這個(gè)案例中,筆者在內(nèi)部的操作語(yǔ)句部分,使用了語(yǔ)句sleep 30 。這是什么意思呢?如果結(jié)合整個(gè)While循環(huán)結(jié)構(gòu),他的意思就是,如果條件滿足的話(profile配置文件不可讀,即不存在),則每個(gè)30秒執(zhí)行以下這個(gè)循環(huán) 。如果條件不滿足的話(profile配置文件可讀,即存在),則跳出這個(gè)循環(huán),然后執(zhí)行后續(xù)的語(yǔ)句 。也就是說(shuō),此時(shí)筆者將真正要執(zhí)行的操作(啟動(dòng)某個(gè)安裝進(jìn)程),放在了循環(huán)的外部 。而在循環(huán)內(nèi)部使用sleep 30,用來(lái)控制循環(huán)執(zhí)行的時(shí)間 。當(dāng)然,在這個(gè)循環(huán)內(nèi)部也可以寫一些實(shí)際性的操作 。如在屏幕上或者安裝日志中顯示一些“找不到配制文件等類似的錯(cuò)誤信息 。往往這些類似友好的提示信息,可以提高程序的友好性 。類似的處理機(jī)制還有很多 。系統(tǒng)工程師需要在日常的工作中注意總結(jié) 。另外,如果多看看其他工程師編寫的腳本程序,往往能夠從中獲取不少有價(jià)值性的內(nèi)容 。模仿往往是在最短時(shí)間內(nèi)增強(qiáng)自己業(yè)務(wù)能力的捷徑 。
最后就是需要注意書寫格式與規(guī)范方面的內(nèi)容 。在編寫循環(huán)結(jié)構(gòu)時(shí),無(wú)論是while循環(huán)還是for循環(huán),如果能夠有意識(shí)的采用TAB鍵或者空格鍵,可以明顯的提高代碼的可讀性 。如循環(huán)內(nèi)部結(jié)構(gòu)的執(zhí)行語(yǔ)句最好能夠跟do或者done等關(guān)鍵字分行寫,并且采用縮進(jìn)的格式 。雖然即時(shí)不遵守這些規(guī)則,腳本程序也沒(méi)有實(shí)質(zhì)性的影響 。但是,對(duì)后續(xù)維護(hù)閱讀的時(shí)候,會(huì)增加不少的困難 。特別是當(dāng)循環(huán)內(nèi)部語(yǔ)句比較多的時(shí)候 。所以對(duì)于這些代碼編寫規(guī)范,系統(tǒng)工程師最好還是需要遵守 。畢竟對(duì)于一些復(fù)雜的功能,需要團(tuán)隊(duì)合作才能夠?qū)崿F(xiàn) 。如果大家都能夠遵守同一的書寫規(guī)范,那么無(wú)疑可以提高團(tuán)隊(duì)的協(xié)作型 。還有就是需要注意語(yǔ)法方面的內(nèi)容,不do后面沒(méi)有分號(hào)結(jié)尾符等等 。這些語(yǔ)法性的錯(cuò)誤系統(tǒng)在執(zhí)行時(shí)會(huì)告知,所以問(wèn)題不大 。只是會(huì)增加返工的幾率與工作量而已 。
三、利用while實(shí)現(xiàn)無(wú)限循環(huán) 。
如上面那個(gè)數(shù)據(jù)庫(kù)異地備份的案例,其實(shí)若能夠通過(guò)無(wú)限循環(huán)來(lái)實(shí)現(xiàn)可能會(huì)更加的合適 。如讓操作系統(tǒng)每隔30分鐘來(lái)執(zhí)行一次循環(huán) 。循環(huán)內(nèi)不能的操作就是先利用if語(yǔ)句來(lái)判斷備份文件是否在30分鐘內(nèi)更新過(guò) 。如果有更新的話,就將其復(fù)制或者移動(dòng)到遠(yuǎn)程的服務(wù)器上 。不管有沒(méi)有更新,這個(gè)循環(huán)的話,每30分鐘就需要執(zhí)行一次 。此時(shí)就需要用到無(wú)限循環(huán) 。利用while循環(huán)條件的含義,這個(gè)無(wú)限循環(huán)很容易實(shí)現(xiàn),只需要循環(huán)條件語(yǔ)句設(shè)置為true即可 。即while true ; do 操作語(yǔ)句 ;done & 。
在這個(gè)循環(huán)結(jié)構(gòu)中,筆者采用true作為循環(huán)條件,其循環(huán)條件永遠(yuǎn)為真,那么操作系統(tǒng)就會(huì)一直循環(huán)下去,直到用戶手工終止 。另外需要注意的是,如果循環(huán)語(yǔ)句比較簡(jiǎn)單,可以在同一行中書寫 。只是在中間合適的位置(如關(guān)鍵字之前)需要加以分號(hào)來(lái)進(jìn)行識(shí)別 。另外,為了避免對(duì)其他進(jìn)程進(jìn)行干擾,最好將這些無(wú)限循環(huán)的操作放置到后臺(tái)運(yùn)行,這可以保障各個(gè)進(jìn)程之間相對(duì)的獨(dú)立性 。此時(shí)只需要在done關(guān)鍵字后面加入&符號(hào)即可,就可以告訴操作系統(tǒng)將這個(gè)無(wú)限循環(huán)放入到后臺(tái)運(yùn)行 。
【Unix文件備份利用While解決文件等待問(wèn)題】不過(guò)在編寫無(wú)限循環(huán)的時(shí)候,需要注意死循環(huán)的發(fā)生 。如循環(huán)內(nèi)部的某個(gè)操作比較耗時(shí) 。在這個(gè)操作還沒(méi)有完成之前,新的循環(huán)又開(kāi)始了 。這久而久之,必將耗盡系統(tǒng)資源 。為此,在程序內(nèi)部最好還是需要設(shè)置一些條件,如CPU等資源的使用程度,來(lái)強(qiáng)制結(jié)束無(wú)限循環(huán) 。筆者認(rèn)為這是比較安全的處理方式,可以有效的避免無(wú)限循環(huán)影響操作系統(tǒng)性能 。

推薦閱讀