1. 程式人生 > >linux bash shell中for的用法and示例

linux bash shell中for的用法and示例

bash shell腳本中for的用法

關於linux bash shell中的for語句

在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循環命令,今天就介紹一下關於for的一些用法。文中任何錯誤希望大佬們一一指出,不勝感激。

bash shell中提供了for命令,用於創建通過一系列值重復的循環,每次重復使用系列中的一個值執行一個定義的命令集。

for語句的基本格式如下:

for………in list

do

commands

done

在參數list中提供一系列用於叠代(上一個輸出的結果,這一句用來輸入)的值。指定列表中的值有幾種不同的方法。


一.讀取列表中的值。

for命令的最基本使用方法是通過在for命令中定義一列值來叠代。如下圖↓

技術分享

執行後如圖賦予t1的值一一被輸出出來! 技術分享

若在列表中的值進行叠代時,將其他值賦予該變量還可以繼續使用,叠代的值是最後一個值

技術分享

輸出結果如下:

技術分享

二.讀取列表中的復雜值。

若在shell中有特殊符號並且要前後一起輸出(下圖)該怎麽辦呢?

技術分享

技術分享


竟然無法執行,若遇到\ ‘ , .等特殊符號時,可以使用反斜杠\來轉義特殊字符。或者用雙引號來定義使用上圖中的單引號

技術分享

若單詞之間有空格必須一起輸出必須要有引號包圍。

三.變量讀取列表

用for語句來實現 從一個列表中讀取變量值,通過列表叠代

技術分享

執行結果如下圖


技術分享

四.讀取命令中的值

for語句中可以調用不是本文件中的值,即其他文件,把該文件中的值調用賦予一個變量在調用該變量就可以在本文件使用。如下圖

技術分享

這是我創建的一個名字為can的文件

技術分享

在t4中把can中的值賦予file之後在for中調用也可以輸出出來 如下圖:

技術分享

五. 改編字段分隔符

此內容博主剛了解 ,錯誤內容還望指出,謝謝大佬們。

字段分隔符一共有三:空格,制表符(指Tab),換行符(enter或者回車)在shell中若是出現回車,空格等腳本會認為是在換行或者在啟動新的數據段,若處理包含空格的文件名時就會出現幹擾。列出如下圖:我創建了兩個文件 (can c)包含空格的文件名

技術分享
技術分享

當我在腳本中調用can c這個文件時 即使加上雙引號還是輸出了can中的代碼和輸出內容如圖:(我把IFS註釋掉了)

技術分享
技術分享

但是,當我把註釋取消即可正常輸出can c的內容如下圖:

技術分享
技術分享

在文件中有空格也是忽略直接輸出

技術分享

沒有IFS時

技術分享

加上IFS的註釋後

技術分享

把can文件中的每行空格都當成分隔符不輸出


六.使用通配符讀取目錄

for不僅可以讀取文件還可以用通配符讀取目錄,尤其是不知道文件中的文件名時。本人在根下創建了一個app目錄在裏面寫了幾個腳本和一個目錄怎麽用for來顯示出來呢 ?

當前路徑

技術分享

app下的文件數量種類

技術分享

腳本如下

技術分享

把目錄文件賦予file在通過if then echo分類輸出出來

執行結果如下圖:

技術分享

for的用法一定不止如此

以上僅僅就是我所知的for用法中的冰山一角,歡迎補充。

一定不吝賜教!


本文出自 “mlon客” 博客,請務必保留此出處http://13154101.blog.51cto.com/13144101/1949969

linux bash shell中for的用法and示例