Shell指令碼基礎-----for迴圈

來源:互聯網
上載者:User

標籤:for

格式

    for 名稱 in 列表

    do

     迴圈體

    done


例子:

    列出/etc/passwd檔案中,第1,3,6,12行的使用者名稱,UID,Shell

#!/bin/bashfor line in 1 3 6 12do        Username=$(head -$line /etc/passwd | tail -1 | awk -F: ‘{print $1}‘)        Userid=$(head -$line /etc/passwd | tail -1 | awk -F: ‘{print $3}‘)        Usershell=$(head -$line /etc/passwd | tail -1 | awk -F: ‘{print $7}‘)        echo -e "UserName:$Username\tUserID:$Userid\tUserShell:$Usershell"done

列表產生

    1.逐個給出  如 /etc/fstab /etc/inittab

    2.萬用字元匹配  如 /var/*

    3.命令生產列表 

        例:

            

#!/bin/bashfor File in `ls /var`do    file /var/$Filedone

    4.數字序列{1..100} 會自動延伸為1到100  

        {啟始數字..結束數字}

       seq 自動產生數字序列:

         sed 3:  產生從1到3

         sed 3 16  生產從3到16

         sed 3 2 16 產生3到16,但會間隔2

                3 5 7 9 11 13 15

   練習:顯示/etc/passwd 所有使用者的使用者名稱和Shell

        

#!/bin/bashLINES=$(wc -l /etc/passwd | awk -F" " ‘{print $1}‘)for I in $(seq 1 $LINES)do        head -$I /etc/passwd | tail -1 | awk -F: ‘{print $1,$7}‘done

     Shell指令碼中算數運算

         Shell不支援浮點數:計算結果中,浮點會被園為整數 

                1.22=1;1.99=1 

算數運算實現方式

    $[expression]

        如 

            a=1

            b=2

            c=$[$a+$b]

            echo $c 

               3

    指令碼聯絡

       計算0到100的總和

    

#!/bin/bashsum=0for i in $(seq 0 100)do        sum=$[$sum+$i]doneecho $sum

    計算所有使用者的UID總和

    

#!/bin/bashidsum=0for i in $(awk -F: ‘{print $3}‘ /etc/passwd)do        idsum=$[$idsum+$i]doneecho $idsum


本文出自 “懸劍” 部落格,請務必保留此出處http://sublime.blog.51cto.com/8856101/1440022

Shell指令碼基礎-----for迴圈

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.