新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > linux shell 腳本入門

        linux shell 腳本入門

        作者: 時間:2007-04-24 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/258223.htm

        4.loop

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

        for-loop表達式查看一個字符串列表 (字符串用空格分隔) 然后將其賦給一個變量:
        for var in ....; do
        ....
        done
        在下面的例子中,將分別打印ABC到屏幕上:
        #!/bin/sh
        for var in A B C ; do
        echo var is $var
        done
        下面是一個更為有用的腳本showrpm,其功能是打印一些RPM包的統計信息:
        #!/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
        這里出現了第二個特殊的變量$*,該變量包含了所有輸入的命令行參數值。
        如果您運行showrpm openssh.rpm w3m.rpm webgrep.rpm
        此時 $* 包含了 3 個字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.


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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 米林县| 兴海县| 南丰县| 永吉县| 高雄县| 新晃| 灵宝市| 神农架林区| 得荣县| 浮山县| 赣州市| 武冈市| 县级市| 图们市| 武平县| 珠海市| 华蓥市| 富顺县| 马龙县| 英山县| 民县| 太和县| 左权县| 循化| 剑河县| 兴宁市| 乌兰浩特市| 苏州市| 堆龙德庆县| 中山市| 台安县| 开江县| 天祝| 湖口县| 靖远县| 宿迁市| 广州市| 金阳县| 南溪县| 高阳县| 孝感市|