<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                總第7篇 ## for循環 ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#%E5%9F%BA%E6%9C%AC%E6%A0%BC%E5%BC%8F)基本格式 ~~~ for 變量 in 取值列表 do 各種操作 done ~~~ 還有`罕見`的寫法就是都寫作一行里: ~~~ for 變量 in 取值列表 ; do 各種操作 ;done ~~~ 取值列表大致可以分成枚舉和迭代兩類 ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#%E6%9E%9A%E4%B8%BE)枚舉 ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#%E6%99%AE%E9%80%9A%E6%9E%9A%E4%B8%BE)普通枚舉 取值列表為空格或回車符分割的字符串 ~~~ for i in 'apple' 'meat' 'sleep' 'woman' do echo I like $i done ~~~ 在終端執行該腳本for.sh。運行結果 ~~~ jelly@X:~$ bash for.sh I like apple I like meat I like sleep I like woman ~~~ ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#%E9%85%8D%E5%90%88%E5%91%BD%E4%BB%A4%E6%9B%BF%E6%8D%A2)配合命令替換 命令替換即` `和$( )兩種操作符的使用。命令替換配合for循環很常見。 比如我系統的用戶叫做jelly,現在我新建了一個叫做guodong的用戶。 但是guodong用戶缺少很多組權限。我想讓guodong擁有jelly所在的全部組。 那么我可以這樣: ~~~ for var in `groups jelly` do echo $var #打印組名 gpasswd -a guodong $var done ~~~ 請用root運行該腳本,這樣就完成了一個給用戶guodong批量添加組的任務。 ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#%E8%BF%AD%E4%BB%A3)迭代 ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#%E8%8A%B1%E6%8B%AC%E5%8F%B7-)花括號{ } - 數字迭代,比如{1..100} - 字母迭代,比如{a..z},{A..Z},{Z..A} - ASCII字符迭代,比如{a..A} 來計算一下1加到100的和 ~~~ #!/bin/bash ans=0 for i in {1..100} do let ans+=$i done echo $ans ~~~ 結果是5050. 花括號的迭代還可以指定指定增量,格式如下: ~~~ {首..尾..增量} ~~~ 來我們計算一下1到100以內的所有奇數的和: ~~~ for i in {1..100..2} do echo $i done ~~~ ### [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#seq)seq 需要配合命令替換使用。seq命令的格式為: ~~~ seq 首數 [增量] 末數 ~~~ 請注意增量的位置在中間,這與前面提到的花括號不同。 來看一個例子(改編自《Shell Scripting Expert Recipes for Linux,Bash,and More》P114) 用腳本來ping一下局域網內的主機: ~~~ #!/bin/bash PREFIX=192.168.1. for i in `seq 100 110` do echo -n "${PREFIX}$i " ping -c5 ${PREFIX}${i} >/dev/null 2>&1 if [ "$?" -eq 0 ];then echo "OK" else echo "Failed" fi done ~~~ 當然了for循環也可以寫作for i in {100..110} 終端運行的結果 ~~~ jelly@X:~$ bash ping.sh 192.168.1.100 Failed 192.168.1.101 Failed 192.168.1.102 OK 192.168.1.103 OK 192.168.1.104 OK 192.168.1.105 OK 192.168.1.106 Failed 192.168.1.107 Failed 192.168.1.108 Failed 192.168.1.109 Failed 192.168.1.110 Failed ~~~ ## [](https://github.com/guodongxiaren/Bash/blob/master/for%E5%BE%AA%E7%8E%AF.md#c%E9%A3%8E%E6%A0%BCfor%E5%BE%AA%E7%8E%AF)C風格for循環 Bash還支持C語言風格的for循環,這個很好理解,我們直接來看例子,去計算一下1到100的和。 ~~~ #!/bin/bash ans=0 for ((i=1;i<=100;i++)) do let ans+=$i done echo $ans ~~~ > 注意!!!這里的for循環要有兩層括號。 > > 本系列(玩轉Bash腳本)更多文章,請訪問:[http://blog.csdn.net/column/details/wanbash.html](http://blog.csdn.net/column/details/wanbash.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看