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

Unix中利用列表作為循環(huán)

【Unix中利用列表作為循環(huán)】在Unix操作系統(tǒng)中開發(fā)應(yīng)用程序,循環(huán)語句可以說占了半壁江山 。由于Unix操作系統(tǒng)中采用的是shell編程環(huán)境,為此循環(huán)機(jī)制在結(jié)構(gòu)上不同于其他的高級語言,如循環(huán)語句之一的for循環(huán),就存在很大的差異 。筆者就跟大家介紹一下,在Unix操作系統(tǒng)中如何使用for循環(huán)以及相關(guān)的注意事項(xiàng),幫助大家提高對這個(gè)for循環(huán)的利用程度 。
一、for循環(huán)的基本結(jié)構(gòu) 。
在shell環(huán)境中,for循環(huán)主要有兩部分組成,分別為循環(huán)列表于操作語句 。具體格式如下:
for variable in list (循環(huán)列表)
do
commands (操作語句)
done
從上面這個(gè)結(jié)構(gòu)中可以看出,在for循環(huán)中使用變量和列表來定義循環(huán)列表 。另外,在利用do與done關(guān)鍵字將要執(zhí)行的操作括起來 。其中變量的作用就是依次從循環(huán)列表中取值,并將這個(gè)參數(shù)值傳遞給操作語句,進(jìn)行相關(guān)的操作 。其實(shí),在學(xué)習(xí)這個(gè)for循環(huán)中,操作語句部分并沒有多少的難度,或者說沒有新鮮的內(nèi)容 。因?yàn)檫@里就是一些unix操作系統(tǒng)的基本語句所構(gòu)成的 。而其難點(diǎn)就是在于循環(huán)列表的確定 。因?yàn)檫@個(gè)循環(huán)列表關(guān)系到for循環(huán)運(yùn)行的兩個(gè)關(guān)鍵參數(shù),一是循環(huán)的次數(shù),二是循環(huán)內(nèi)部操作所需要用到的參數(shù)值 。為此筆者在介紹這個(gè)for循環(huán)時(shí),重點(diǎn)也是放在這個(gè)循環(huán)列表的設(shè)置上 。也就是說,系統(tǒng)工程師只要精通這個(gè)循環(huán)列表的編寫,那么其他內(nèi)容不會有問題 。
二、如何編制循環(huán)列表?
由于shell是一個(gè)跟Unix操作系統(tǒng)友好集成的編程環(huán)境,或者說是操作系統(tǒng)中的一個(gè)部分 。為此這個(gè)循環(huán)列表的定義方式要比高級語言的for循環(huán)豐富的多 。如可以使用很多操作系統(tǒng)的文件或者參數(shù)來作為其循環(huán)條件 。具體來說,系統(tǒng)工程師可以按照如下的規(guī)則來設(shè)置這個(gè)循環(huán)列表 。
1、 利用文件來作為循環(huán)列表 。
有時(shí)候可能列表比較大,如總共有100多個(gè)條目 。雖然可以依次將這些條目寫在for語句的循環(huán)列表中,但是會大大的增加代碼的長度,從而影響其閱讀 。而且以后若要更改這些條目的話,還需要去更改這個(gè)源代碼 。顯然這會很麻煩 。如現(xiàn)在系統(tǒng)工程師需要查找在用戶目錄下,是否有用戶想要的20個(gè)文件 。這20個(gè)文件名字沒有什么規(guī)律 。正常情況下,用戶需要一一輸入文件名 。文件名輸入一個(gè),然后查詢一次 。一共做二十次,顯然這操作起來的工作量會非常的大 。如果這個(gè)文件的數(shù)目再增加的話,那么操作起來就會更加的麻煩 。在for循環(huán)中可以解決這個(gè)問題 。即只需要在循環(huán)列表中將這20個(gè)文件名字輸入進(jìn)去,然后再操作語句中通過查詢操作在指定目錄中查找看是否有相關(guān)的文件 。若有的話,將位置等信息保存到一個(gè)文件中 。這就可以簡化用戶的操作,只需要進(jìn)行一個(gè)for循環(huán)即可 。同時(shí)還可以大幅度的縮短查詢的時(shí)間 。
但是,此時(shí)遇到的一個(gè)問題就是要在for循環(huán)的循環(huán)列表中輸入20個(gè)文件名字 。為此系統(tǒng)工程師希望能夠?qū)⑦@些文件的名字保存在文件中,然后讓for循環(huán)從文件中讀取這些內(nèi)容 。這即方便,而且也利于后續(xù)的調(diào)整 。其實(shí)在for循環(huán)中,是支持從文件中讀取相關(guān)的列表信息 。不過這需要用到一個(gè)cat命令 。大家都知道,這個(gè)cat命令的用途主要是從一個(gè)文件中讀取相關(guān)的信息 。如果用過管道符的系統(tǒng)工程師,一定知道,可以將某個(gè)命令的結(jié)果作為另外一個(gè)命令的參數(shù) 。其實(shí),在這里用到的也是這個(gè)原理,只是不需要通過管道符來實(shí)現(xiàn)而已 。具體來說,這個(gè)循環(huán)列表可以如下定義 。For name in ‘cat filename.txt’(注意,由于其讀取后變?yōu)榱宋谋镜膬?nèi)容,為此需要加上單引號) 。當(dāng)for循環(huán)的列表很大,而且沒有規(guī)律可循的話,雖然可以直接在循環(huán)列表中一一列出列表項(xiàng),但這不是筆者所推薦的方法 。筆者認(rèn)為,遇到這種情況時(shí),最好能夠向上面筆者建議的,將列表項(xiàng)保存在一個(gè)文件中 。然后在for循環(huán)的循環(huán)列表中利用cat命令進(jìn)行讀取 。由于此時(shí)這個(gè)文件跟程序是相對獨(dú)立的,為此以后若需要調(diào)整這個(gè)列表項(xiàng)的值,不需要修改源代碼即可以實(shí)現(xiàn) 。為此者也被認(rèn)為是一種靈活性比較高的處理方式 。如果列表項(xiàng)需要經(jīng)常調(diào)整,那么即使列表項(xiàng)的內(nèi)容不是很多,也可以通過這種方法來提高其靈活性 。

推薦閱讀