linux循環語句命令 linux循環控制語句

如何在linux命令行中循環執行命令

1、for FILE in $(ls); do [COMMAND]; done

創新互聯主要從事網站制作、網站設計、網頁設計、企業做網站、公司建網站等業務。立足成都服務通化,十載網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792

2、for a in {1..100}; do echo $RANDOM; done

3、for (( c=1; c=5; c++ )); do echo $RANDOM; done

4、for ((c=1; c21; c+=2)); do echo "Welcome $c times" ; done

5、for line in $(cat user.txt); do getent shadow $line; done

6、for FILE in $(cat file); do tar zcf $FILE.tar.gz $FILE;rm -rf $FILE; done

7、# awk計算所有行所有區域的總和

awk '{for (i=1; i=NF; i++) s=s+$i}; END{print s}'

Linux入門系列——awk命令詳解

awk是一個強大的文本分析工具,與grep、sed相比,awk在對數據分析并生成報告時,顯得有很大的優勢。

awk有三個不同的版本:awk、nawk和gawk,在沒有做特殊說時的時候默認的就是gawk,gawk是awk的GNU版本。

其中command是真正的awk命令,-F表示域的分隔符,是個可選項。Filename是等待處理的文件

將所有的awk命令寫入到一個文件,并使用該文件有X權限,然后awk命令解釋器作為腳本的首行,也就是說可以把腳本最開始的 #!/bin/bash 換成 #!/bin/awk

最后直接執行這個腳本文件就行了。

-f 指定要加載的awk腳本,是一個文件。Filename是等待處理的文件

awk的工作流程是這樣的:讀入一行后(最后面帶有” ”的),就按-F指定的分隔符來將該行劃分成N個區域,$0表示所有的區域,$1表示第一個域,$2表示第二個域,依此類推,$n表示第n個域。

總結:awk先執行BEGIN內的命令,然后再讀入文件中的行,接著就是按照指定的分隔符將該行分成N個區域,然后再來執行模式所對應的動作action。然后,再來讀入第二行。。再重復執行action,直到所有的行都處理完成。最后再執行END中的命令。

注意:' // '之間是支持正則表達式的,如果此處只有pattern,而沒有action,那么awk默認會把匹配到的行打印出來。

awk中的print還可以使用C語言中的printf來替代。在輸出格式比較復雜的時候使用printf函數會比print函數要更直觀一些,如下:

還可以使用-v key=value來自定義變量。如下:

awk中的條件語句是從C中借鑒過來的

語法:if (condition) {then-body} else {else-body}

例如使用awk來統計某個目錄下的普通文件的大小,不包括子目錄的,并過濾掉目錄。

循環語句也和C中的一樣,支持while、do/while、for、continue、break等關鍵字。

break和continue常用于循環中;

在awk中,數組的下標可以是數字或字母。一般awk中的數組的作用是從記錄中收集信息,用于計算總和、統計單詞等。

在awk中要刪除一個元素的時候使用 delete array[index]

更多請參見awk官方文檔[]

Linux Shell:Shell循環語句

摘要: Linux , Shell

Shell中常用循環有 for , while

for循環只能用于 固定次數 的循環,因此不能無限循環和用于一些在后臺守護進程一直運行的程序,語法語句如下

也可以寫成一行,用 ; 分隔

取值列表內元素以空格隔開,如果元素帶有空格則用引號包裹起來,例子如下

輸出如下,可見循環到最后退出循環,引用變量依舊是最后一個取值列表元素

一行的寫法

Shell的for循環也可以采用C語言的寫法,注意是 雙括號 ,用 分號; 間隔

一個簡單例子

while循環語句結合條件測試使用,語法如下

舉一個例子

在循環中使用條件測試實現復雜的邏輯,例如

也可以使用,||一行完成,省去if,fi

Shell的continue,break語句和Python一樣,例子如下

break語句下輸出4

continue語句下輸出4 6 7 8 9 10

常見結合使用的循環體有 序列 , 數組 , 命令行傳參 , 文件目錄和文件

序列通過 seq 命令或者 {begin..end..step} 符號進行定義:

結合for循環使用案例

在Shell中使用小括號 () 定義數組,數組遍歷使用 [@] 符號,防止元素有空格用雙引號包起來,,例子如下

命令行傳參遍歷使用固定符號 $@ ,如果參數中有空格,用雙引號括起來,例子如下

文件遍歷使用 ls 命令,可以指定目錄,以及通配符匹配

一個雙重循環實現,注意 expr表達式中乘號要加轉移符

(2)將某目錄下大小大于閾值的文件移動到另一個文件

遍歷循環一個目錄,使用awk語法獲得文件大小,將100m以上的文件移動到另一個文件夾

(2)指定開始日期和結束日期完成一個跑批任務

指定一個開始時間和結束時間,while從開始日期一直自增到結束日期循環結束,通過 date -d '2021-01-01 1day' +%Y-%m-%d 自增一天

當前文章:linux循環語句命令 linux循環控制語句
網頁URL:http://m.kartarina.com/article4/dogepie.html

成都網站建設公司_創新互聯,為您提供企業建站網站排名網站維護網站改版網站設計公司App設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計
主站蜘蛛池模板: 精品无码国产自产拍在线观看| av无码人妻一区二区三区牛牛| 国产aⅴ激情无码久久| 国产精品视频一区二区三区无码| 变态SM天堂无码专区| 少妇精品无码一区二区三区| 亚洲综合无码一区二区痴汉| 亚洲 另类 无码 在线| 老司机亚洲精品影院无码| 亚洲AV永久无码精品一区二区国产| 亚洲欧洲无码AV电影在线观看| 67194成是人免费无码| 无码内射中文字幕岛国片| 国产午夜鲁丝片AV无码免费| 精品无码AV无码免费专区| 国产AV无码专区亚洲Av| 一本久道中文无码字幕av| 亚洲AV无码一区二区三区网址| 亚洲一区精品无码| 免费a级毛片无码av| 亚洲中文字幕无码av| 亚洲成AV人在线播放无码| 中文无码AV一区二区三区| 无码毛片一区二区三区中文字幕 | 无码精品A∨在线观看免费| 精品亚洲成α人无码成α在线观看| 99热门精品一区二区三区无码| 国产爆乳无码视频在线观看| 亚洲精品无码久久久| 无码国产成人午夜电影在线观看| 亚洲精品无码高潮喷水A片软| 免费A级毛片无码专区| 无码精品黑人一区二区三区 | 亚洲AV无码一区二区三区性色| 免费无码一区二区三区| 久久午夜无码鲁丝片 | 精品一区二区三区无码免费视频| 台湾无码AV一区二区三区| 精品无人区无码乱码大片国产| 久久精品无码一区二区app| 成人无码一区二区三区|