linux中for的用法

關于linux
bash shell
中的for語句

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

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

for語句的基本格式如下:

for………in
list

do

       commands

done

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

一.讀取列表中的值。

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

linux中for的用法

執行后如圖賦予t1的值一一被輸出出來!

linux中for的用法

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

linux中for的用法

輸出結果如下:

linux中for的用法

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

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

                linux中for的用法    

                linux中for的用法

竟然無法執行,若遇到\ ‘ , .等特殊符號時,可以使用反斜杠\來轉義特殊字符?;蛘哂秒p引號來定義使用上圖中的單引號

            linux中for的用法

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

 

三.變量讀取列表

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

    linux中for的用法

執行結果如下圖

            linux中for的用法

四.讀取命令中的值

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

        linux中for的用法

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

        linux中for的用法

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

        linux中for的用法

五. 改編字段分隔符

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

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

        linux中for的用法
        linux中for的用法

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

        linux中for的用法
        linux中for的用法

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

        linux中for的用法
     linux中for的用法

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

    linux中for的用法

沒有IFS

        linux中for的用法

加上IFS的注釋后

        linux中for的用法

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

六.使用通配符讀取目錄

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

當前路徑

        linux中for的用法

app下的文件數量種類

     linux中for的用法

腳本如下

linux中for的用法

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

執行結果如下圖:

    linux中for的用法

以上就是我所知的for用法,歡迎補充。

一定不吝賜教!

原創文章,作者:mengL,如若轉載,請注明出處:http://www.www58058.com/81029

(0)
mengLmengL
上一篇 2017-07-15
下一篇 2017-07-15

相關推薦

  • MySQL復制詳解

    目錄:        1、簡介        2、原理        3、常見復制架構        4、一主一叢異步復…

    Linux干貨 2015-10-01
  • Python 課堂筆記

    第二天

    Linux干貨 2018-03-21
  • LVS 工作模型和調度算法

    簡介   LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。 LVS是四層負載均衡,也就是說建立在OSI模型的第四層——傳輸層之上,傳輸層上有我們熟悉的TCP/UDP,LVS支持TCP/UDP的負載均衡 &nbs…

    Linux干貨 2016-12-19
  • 馬哥教育網絡第20期—IO類型與IO模型

    IO類型與IO模型 IO類型 同步與異步(synchronous,asynchronous):關注消息通知機制 同步:進程發出系統調用之后,不會立即有返回信息,但是一旦有返回信息,則一定是最終結果. 異步:進程發出系統調用之后,會有立即返回結果,但不是最終的結果,當內核處理完成之后,內核通過通知機制通知進程,該系統調用已完成. 阻塞與非阻塞(blocking…

    Linux干貨 2016-06-26
  • ?rsyslog

    rsyslog 概述 rsyslog支持的facility與priority facility:設施、信道: priority:級別 rsyslog程序 配置文件 配置日志記錄級別和路徑 配置日志記錄在遠程rsyslog server rsyslog server端 rsyslog client端 測試遠程服務器是否記錄日志 rsyslog記錄在MySQL中…

    Linux干貨 2016-10-16
  • N22-第十二周作業

    1、請描述一次完整的http請求處理過程; (1)建立或處理連接:接受請求或拒絕請求 (2)接收請求:接收來自于網絡上的主機請求報文中對某特定資源的一次請求的過程 (3)處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息 (4)訪問資源:獲取請求報文中請求的資源 (5)構建響應報文 (6)發送響應報文 (7)記錄日志:訪問日志和錯誤日志 …

    Linux干貨 2016-11-04
欧美性久久久久