<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          linux shell 腳本入門

          作者: 時間:2007-04-24 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/258223.htm

          4.loop

          loop表達式:
          while ...; do
          ....
          done
          while-loop 將運行直到表達式測試為真。will run while the expression that we test for is true.
          關(guān)鍵字break 用來跳出循環(huán)。而關(guān)鍵字”continue”用來不執(zhí)行余下的部分而直接跳到下一個循環(huán)。

          for-loop表達式查看一個字符串列表 (字符串用空格分隔) 然后將其賦給一個變量:
          for var in ....; do
          ....
          done
          在下面的例子中,將分別打印ABC到屏幕上:
          #!/bin/sh
          for var in A B C ; do
          echo var is $var
          done
          下面是一個更為有用的腳本showrpm,其功能是打印一些RPM包的統(tǒng)計信息:
          #!/bin/sh
          # list a content summary of a number of RPM packages
          # USAGE: showrpm rpmfile1 rpmfile2 ...
          # EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
          for rpmpackage in $*; do
          if [ -r $rpmpackage ];then
          echo =============== $rpmpackage ==============
          rpm -qi -p $rpmpackage
          else
          echo ERROR: cannot read file $rpmpackage
          fi
          done
          這里出現(xiàn)了第二個特殊的變量$*,該變量包含了所有輸入的命令行參數(shù)值。
          如果您運行showrpm openssh.rpm w3m.rpm webgrep.rpm
          此時 $* 包含了 3 個字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.


          5. 引號
          在向程序傳遞任何參數(shù)之前,程序會擴展通配符和變量。這里所謂擴展的意思是程序會把通配符
          (比如*)替換成合適的文件名,它變量替換成變量值。為了防 止程序作這種替換,您可以使用
          引號:讓我們來看一個例子,假設(shè)在當(dāng)前目錄下有一些文件,兩個jpg文件, mail.jpg 和tux.jpg。
          1.2 編譯SHELL腳本
          #ch#!/bin/sh mod +x filename
          cho *.jpg ∪緩?,您可裔jü淙耄?./filename 來執(zhí)行您的腳本。
          這將打印出mail.jpg tux.jpg的結(jié)果。
          引號 (單引號和雙引號) 將防止這種通配符擴展:
          #!/bin/sh
          echo *.jpg
          echo '*.jpg'
          這將打印*.jpg 兩次。
          單引號更嚴格一些。它可以防止任何變量擴展。雙引號可以防止通配符擴展但允許變量擴展。
          #!/bin/sh
          echo $SHELL
          echo $SHELL
          echo '$SHELL'
          運行結(jié)果為:
          /bin/bash
          /bin/bash
          $SHELL
          最后,還有一種防止這種擴展的方法,那就是使用轉(zhuǎn)義字符——反斜桿:
          echo *.jpg
          echo $SHELL
          這將輸出:
          *.jpg
          $SHELL



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();