shell腳本的使用

說明:
    $ chmod a+x ./test.sh  #使腳本具有執行權限

    a=20 
    b=10
    1.算術運算符列表 運算符   說明       舉例
        +   加法  `expr $a + $b`           結果爲 30。
        -   減法  `expr $a - $b`           結果爲 10。
        *   乘法  `expr $a \* $b`          結果爲  200#乘法使用不同
        /   除法  `expr $a / $b`           結果爲 2。
        %   取餘  `expr $b % $a`           結果爲 0。
        =   賦值  a=$b 將把變量 b          的值賦給 a。
        ==  相等    相同則返回 true。        [ $a == $b ] 返回 false。
        !=  不相等  不相同則返回 true。    [ $a != $b ] 返回 true2. -運算符

        -eq           //等於

        -ne           //不等於

        -gt            //大於

        -lt            //小於

        ge            //大於等於

        le            //小於等於


a.最簡單的shell腳本     

    #!/bin/bash
        echo "Hello World !"

b.  從鍵盤上輸入內容   
    #!/bin/bash

        echo "What is your name?"
    read PERSON
        echo "Hello, $PERSON"

    運行腳本,輸出:(比如輸入一個1)

    What is your name?
    Hello,1

c. while循環
    #!/bin/bash

    COUNTER=0
    while [ $COUNTER -lt 5 ]
    do
        COUNTER='expr $COUNTER+1'    #shell腳本不是直接+1的
        echo $COUNTER
    done

    運行腳本,輸出:

    1
    2
    3
    4
    5

d.  until[條件] 條件爲假時才執行循環
    #!/bin/bash

    a=0
    until [ ! $a -lt 5 ]
    do
       echo $a
       a=`expr $a + 1`
    done

    運行結果:

    0
    1
    2
    3
    4

e.   for循環  
    #!/bin/bash
    for loop in 1 2 3 4 5
    do
        echo "The value is: $loop"
    done

    運行結果:

    The value is: 1
    The value is: 2
    The value is: 3
    The value is: 4
    The value is: 5 

f.  函數
    #!/bin/bash

    Hello () {
       echo "Url is http://see.xidian.edu.cn/cpp/shell/"
    }
    # Invoke your function
    Hello

    運行結果:

    $./test.sh
    Hello World
    $

g. Shell文件包含執行其它腳本

    1. vi subscript.sh
       #!/bin/bash

       url="http://see.xidian.edu.cn/cpp/view/2738.html"
       echo $url

    2. vi main.sh

       #!/bin/bash
       ./subscript.sh

    運行結果:

    http://see.xidian.edu.cn/cpp/view/2738.html


h. 實踐中總結
    //if嵌套
     if [ "${product}_x" = "WIFI_DVR_x" ]
     then
         echo "------------ run /dm05_sample-----------------"
         /md05_judge
         RET_VALUE=$?                       //如果有3個以上的返回值先把返回值保存
         if [ $RET_VALUE -eq 0 ]
         then
             echo "run main_wifi"
             /home/dvr/bin/main_wifi ${rtc} &
         elif [ $RET_VALUE -eq 1 ]; then
             echo "run md05_sample"
             /md05_sample
         elif [ $RET_VALUE -eq 2 ]; then
             echo "run test pcb "
         fi
    fi


  特殊變量列表
    #!/bin/bash

    echo "File Name: $0"
    echo "First Parameter : $1"
    echo "First Parameter : $2"
    echo "Quoted Values: $@"
    echo "Quoted Values: $*"
    echo "Total Number of Parameters : $#"

    運行結果:

    $./test.sh Zara Ali

    File Name : ./test.sh
    First Parameter : Zara
    Second Parameter : Ali
    Quoted Values: Zara Ali
    Quoted Values: Zara Ali
    Total Number of Parameters : 2


    特殊變量列表 變量   含義
    $0     當前腳本的文件名
    $n 	傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2$#     傳遞給腳本或函數的參數個數。
    $*     傳遞給腳本或函數的所有參數。
    $@ 	傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
    $?     上個命令的退出狀態,或函數的返回值。
    $$    當前Shell進程ID。對於 Shell 腳本,就是這些腳本所在的進程ID。

發佈了98 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章