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 16:53
下一篇 2017-07-15 17:39

相關推薦

  • 馬哥教育網絡班22期+第九周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別統計這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash declare -i sum1=0 declare -i sum2=0 shells=$(cat /etc/p…

    Linux干貨 2016-11-28
  • linux歷史命令history詳解

    history命令 history命令用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。 該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。  128  ls  129  history[…

    Linux干貨 2016-09-05
  • Systemd服務

    POST –> Boot Sequence –> Bootloader –> kernel + initramfs(initrd) –> rootfs –> /sbin/initinit:CentOS 5: SysV initCentOS 6: UpstartCentO…

    Linux干貨 2015-03-02
  • shell腳本編程之變量

    一、創建shell腳本文件   創建shell腳本時,必須在第一行指定要使用的shell。格式為:   #!/bin/bash   通常在shell腳本中,#代表注釋行,即不被執行的行,而第一行“#!”則是表示用哪個shell來執行腳本。   實例:   讓我們來執行一下這個腳本:   上面的結果顯…

    Linux干貨 2016-02-14
  • Linux任務計劃命令及應用

    at命令,crontab命令

    2018-03-12
  • n28 第二周作業

    n28 第二周作業

    Linux干貨 2017-12-09
欧美性久久久久