日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Unix中利用列表作為循環

瀏覽:176日期:2024-06-10 13:24:21

在Unix操作系統中開發應用程序,循環語句可以說占了半壁江山。由于Unix操作系統中采用的是shell編程環境,為此循環機制在結構上不同于其他的高級語言,如循環語句之一的for循環,就存在很大的差異。筆者就跟大家介紹一下,在Unix操作系統中如何使用for循環以及相關的注意事項,幫助大家提高對這個for循環的利用程度。

一、for循環的基本結構。

在shell環境中,for循環主要有兩部分組成,分別為循環列表于操作語句。具體格式如下:

for variable in list (循環列表)

do

commands (操作語句)

done

從上面這個結構中可以看出,在for循環中使用變量和列表來定義循環列表。另外,在利用do與done關鍵字將要執行的操作括起來。其中變量的作用就是依次從循環列表中取值,并將這個參數值傳遞給操作語句,進行相關的操作。其實,在學習這個for循環中,操作語句部分并沒有多少的難度,或者說沒有新鮮的內容。因為這里就是一些unix操作系統的基本語句所構成的。而其難點就是在于循環列表的確定。因為這個循環列表關系到for循環運行的兩個關鍵參數,一是循環的次數,二是循環內部操作所需要用到的參數值。為此筆者在介紹這個for循環時,重點也是放在這個循環列表的設置上。也就是說,系統工程師只要精通這個循環列表的編寫,那么其他內容不會有問題。

二、如何編制循環列表?

由于shell是一個跟Unix操作系統友好集成的編程環境,或者說是操作系統中的一個部分。為此這個循環列表的定義方式要比高級語言的for循環豐富的多。如可以使用很多操作系統的文件或者參數來作為其循環條件。具體來說,系統工程師可以按照如下的規則來設置這個循環列表。

1、 利用文件來作為循環列表。

有時候可能列表比較大,如總共有100多個條目。雖然可以依次將這些條目寫在for語句的循環列表中,但是會大大的增加代碼的長度,從而影響其閱讀。而且以后若要更改這些條目的話,還需要去更改這個源代碼。顯然這會很麻煩。如現在系統工程師需要查找在用戶目錄下,是否有用戶想要的20個文件。這20個文件名字沒有什么規律。正常情況下,用戶需要一一輸入文件名。文件名輸入一個,然后查詢一次。一共做二十次,顯然這操作起來的工作量會非常的大。如果這個文件的數目再增加的話,那么操作起來就會更加的麻煩。在for循環中可以解決這個問題。即只需要在循環列表中將這20個文件名字輸入進去,然后再操作語句中通過查詢操作在指定目錄中查找看是否有相關的文件。若有的話,將位置等信息保存到一個文件中。這就可以簡化用戶的操作,只需要進行一個for循環即可。同時還可以大幅度的縮短查詢的時間。

但是,此時遇到的一個問題就是要在for循環的循環列表中輸入20個文件名字。為此系統工程師希望能夠將這些文件的名字保存在文件中,然后讓for循環從文件中讀取這些內容。這即方便,而且也利于后續的調整。其實在for循環中,是支持從文件中讀取相關的列表信息。不過這需要用到一個cat命令。大家都知道,這個cat命令的用途主要是從一個文件中讀取相關的信息。如果用過管道符的系統工程師,一定知道,可以將某個命令的結果作為另外一個命令的參數。其實,在這里用到的也是這個原理,只是不需要通過管道符來實現而已。具體來說,這個循環列表可以如下定義。For name in ‘cat filename.txt’(注意,由于其讀取后變為了文本的內容,為此需要加上單引號)。當for循環的列表很大,而且沒有規律可循的話,雖然可以直接在循環列表中一一列出列表項,但這不是筆者所推薦的方法。筆者認為,遇到這種情況時,最好能夠向上面筆者建議的,將列表項保存在一個文件中。然后在for循環的循環列表中利用cat命令進行讀取。由于此時這個文件跟程序是相對獨立的,為此以后若需要調整這個列表項的值,不需要修改源代碼即可以實現。為此者也被認為是一種靈活性比較高的處理方式。如果列表項需要經常調整,那么即使列表項的內容不是很多,也可以通過這種方法來提高其靈活性。

2、 利用系統變量作為循環列表。

在Unix操作系統中,for循環最大的特色,莫過于可以利用系統變量來作為循環列表。如還是以查詢操作為例,用戶可能需要從指定的幾個文件夾中查找某個文件。而這幾個目錄都是有環境變量所確定的。如一個系統工程師剛到企業,接替老的系統工程師的工作。此時這位系統工程師就需要知道Unix服務器系統的一些基本配置。而這其中有一項重要的內容就是一些重要環境變量的設置。如安裝了Oracle數據庫,就需要知道其安裝路徑。若安裝了Mail服務器,則需要知道其郵件的存儲位置與備份位置等等。如果一一去查看這些環境變量,工作量會比較大。如果換成是筆者的話,不會做這么沒有效率的事情。筆者的做法是,編寫一個for循環,然后將這些重要的環境變量輸出到一個文件中進行備份。這將為筆者后續的工作帶來很大的方便。如現在筆者想知道Oracle的安裝目錄與mail的環境變量,就可以利用下面這個循環列表來實現。

For varhome in $ORACLE_HOME $MAIL。

在這個for循環中,筆者采用了系統的環境變量作為其循環語句。當系統工程師利用系統環境變量來作為循環列表時,需要注意以下幾個事項。首先,這個列表項必須全部大寫。也就是說,系統變量必須大寫這個規則也適用于這個for循環。其次,再變量名之前必須加入$這個環境變量的符號,否則的話,編譯器會無法識別。三是在多個環境變量之間,不需要加入分隔符。

3、 利用通配符作為循環列表。

有時候可能系統管理員有這個要求。在某個文件下有多以txt為擴展名的文件。現在系統工程師可能想一一統計這些文件的大小、創建日期、更新日期等等信息,然后將這些統計信息保存到一個文件中。或者想對這些文件進行改名,如在原先的名字之前加上一個backup的字符串,表示這些文件是備份文件。此時,如果一一對這些文件操作的話,會比較麻煩。那么比較合理的做法就是通過for循環來一次性完成這些任務。

此時,如何書寫這個循環列表呢?筆者認為比較合理、比較簡便的方法就是通過通配符來實現。如可以利用如下語句來實現:for filename in *.txt。利用這個循環列表,系統就會從目錄中查找所有以.txt為擴展名的文件,然后將其為參數,進行后續的操作。如用戶需要進行文件更名的話,則可以使用sed操作來對文件進行重命名。在使用通配符作為循環列表中的參數時,最好采用合適的通配符。因為通配符*或者%其含義不盡相同。如果系統工程師能夠了解他們其中的差異,并在這里對癥下藥,選擇合適的通配符。那么就可以起到事半功倍的效果。

在for循環中除了使用上面三種特殊的循環列表外,系統工程師往往還可能采用位置參數作為循環列表。如可以將命令行中的參數賦值給位置參數,來實現一些比較復雜的功能。由于篇幅限制,筆者在這里不對這個位置參數做詳細的解釋了。如有有需要的話,筆者在以后的文章中會談到這個問題。

標簽: Unix系統
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区视频二区中文| 欧美视频久久| 亚洲一区导航| 免费视频一区三区| 六月婷婷综合| 精品福利久久久| 国产精品v一区二区三区| 国产剧情在线观看一区| 国产精品黄网站| 欧美一区激情| 国产一区日韩一区| 91精品一区国产高清在线gif| 成人福利视频| 欧美日韩色图| 国产福利电影在线播放| 国内一区二区三区| 久久只有精品| 色8久久久久| 麻豆精品视频在线观看| 青青草91视频| 国产欧美精品久久| 国产精品免费大片| 精品中文字幕一区二区三区四区| 超碰成人av| 欧美日韩一二| 欧美黄色网页| 欧美日韩中文字幕一区二区三区| 丝袜av一区| 中文另类视频| 91久久亚洲| 精品99在线| 日韩av不卡一区二区| 日韩一区电影| 久久国产尿小便嘘嘘| 日韩影院免费视频| 高清一区二区三区| 日韩在线中文| 久久伦理在线| 91精品99| 日本不卡的三区四区五区| 夜久久久久久| 亚洲欧美在线综合| 国产欧美日韩一区二区三区四区 | 亚洲爱爱视频| 99re国产精品| 日韩欧美久久| 精品国产鲁一鲁****| 国产视频一区免费看| 欧美日本久久| 精品免费av| 午夜精品免费| 色综合视频一区二区三区日韩 | 香蕉视频成人在线观看| 亚洲精品九九| 六月婷婷综合| 日韩成人av影视| 国产白浆在线免费观看| 久久国产成人| 日韩精品成人| 老司机免费视频一区二区| 婷婷精品进入| 国产精久久一区二区| 亚洲午夜91| 国产精品久久乐| 在线视频观看日韩| 日韩高清一区在线| 亚洲国产日韩欧美在线| 欧美另类中文字幕| 久久人人88| 国产日产精品_国产精品毛片| 日韩不卡视频在线观看| 国产精品大片| 丝袜a∨在线一区二区三区不卡| 亚洲区第一页| 亚洲成人不卡| 国产精品porn| 欧美高清不卡| 国产91在线播放精品| 亚洲另类黄色| 久久人人97超碰国产公开结果| 欧美日韩国产一区精品一区| 精品三级av| 久久精品福利| 亚洲一区二区三区免费在线观看| 卡一精品卡二卡三网站乱码| 蜜桃av一区二区| 色老板在线视频一区二区| 国产在线日韩精品| 日本一区二区中文字幕| 精品三级国产| 热久久久久久| 国产精品外国| 日韩精品诱惑一区?区三区| 国产精品a久久久久| 亚洲精选久久| 亚洲激情中文在线| 亚洲午夜天堂| 久久精品福利| 国产成人精品三级高清久久91| 国产精品资源| 中文字幕av亚洲精品一部二部| 日韩精品一区二区三区免费观影 | 国产精品亚洲欧美| 蜜桃久久久久久久| 99久久精品网| 精品一区二区三区四区五区| 中文字幕日本一区二区| 国产专区精品| 国产黄色精品| 欧美午夜三级| 中文精品电影| 狠狠爱www人成狠狠爱综合网| 91嫩草精品| 男人的天堂久久精品| 日韩中文字幕av电影| 国产精品毛片在线看| 久久久久久美女精品| 日韩成人a**站| 高清日韩欧美| 久久精品免费一区二区三区| 日韩一区自拍| 伊人久久亚洲影院| 日韩美女国产精品| 精品国产午夜肉伦伦影院| 久久久精品久久久久久96| 极品日韩av| 日韩**一区毛片| 日韩国产精品久久久| 精品91福利视频| 亚洲精品一区二区在线看| 亚洲精品无播放器在线播放| 国产极品模特精品一二| 久久蜜桃资源一区二区老牛| 爽好多水快深点欧美视频| 91麻豆精品| 日韩精品永久网址| 蜜桃视频第一区免费观看| 国产高清日韩| 欧美日韩国产高清| 国产精品欧美三级在线观看| 日韩精品免费一区二区三区| 日本 国产 欧美色综合| 日本一区二区中文字幕| 精品一区二区三区免费看 | 美女久久精品| 尤物tv在线精品| 色综合视频一区二区三区日韩| 亚洲一区欧美二区| 国产欧美在线| 日韩高清欧美激情| 人在线成免费视频| 色婷婷亚洲mv天堂mv在影片| 老鸭窝亚洲一区二区三区| 蜜桃av在线播放| 一级欧美视频| 亚洲一级大片| 日韩电影免费网站| 日韩中文在线电影| 日韩毛片网站| 日本va欧美va欧美va精品| 久久夜夜操妹子| 亚洲成人va| 欧美日韩夜夜| 国产精品综合色区在线观看| 91久久国产| 91精品国产自产在线观看永久∴ | 婷婷精品在线观看| 久久亚洲精品伦理| 国产一区二区三区久久| 国产精品超碰| 日韩中出av| 91av一区| 蜜桃一区二区三区在线观看| 蜜臀久久久99精品久久久久久| 午夜在线一区| 中文字幕日韩亚洲| 日本不卡一区二区三区| 欧美日韩激情| 麻豆精品91| av综合电影网站| 欧美日韩国产高清电影| 免费国产自线拍一欧美视频| 欧美一级一区| 精品视频一区二区三区四区五区 | 亚洲一区二区动漫| 国产精品久久观看| 久久九九国产| 麻豆精品国产91久久久久久| 欧美国产一级| 国产精品亚洲一区二区在线观看| 国产精品久久久免费| 久久成人国产| 国产欧美综合一区二区三区| 日本少妇一区| 国产中文在线播放| 久久亚州av| 久久要要av| 久久男人天堂| 国产毛片一区| 欧美91福利在线观看|