bash腳本編程之四——整數測試及特殊變量


bash中經常使用的條件測試有三種:express


測試方法:bash

[ expression ] 命令測試法ide

[[ expression ]]  關鍵字測試法測試

test expression spa

整數測試:orm

    -gt
it

    -le    
io

    -ne
class

    -eqtest

    -ge

    -lt

例:

    INT1=63

    INT2=77

    [ $INT1 -eq $INT2 ]

    [[ $INT1 -eq $NET2 ]]

    test $INT1 -eq $NET2


文件測試:

-e FILE:測試文件是否存在

-f FILE:測試文件是否爲普通文件

-d FILE:測試指定路徑是否爲目錄

-r FILE:測試當前用戶對指定文件是否有讀取的權限

-w FILE:測試當前用戶對指定文件是否有寫入的權限

-x FILE:測試當前用戶對指定文件是否有執行的權限

 

例:寫一個腳本,給定一個文件,若是是普通文件,就顯示之;若是是一個目錄,亦顯示之;不然,顯示此爲沒法識別文件。

#!/bin/bash

#

file=/etc/passwd            \\定義變量file


if [ ! -e $file ];then         \\若是文件不存在

        echo "no such file."  \\就顯示文件不存在

        exit 2            \\結束腳本

fi


if [ -f $file ];then           \\若是文件存在就判斷是否是普通文件   

        echo "common file."    \\是就顯示文件爲普通文件

elif [ -d $file ];then          \\不然就測試是否爲目錄

        echo "Directory."      \\是就顯示是目錄

else                       \\不然 

        echo "unknow"         \\就顯示文法識別

fi


定義腳本退出狀態碼

提早結束腳本:exit 

exit #

若是腳本沒有明肯定義退出狀態碼,那麼,最後執行的一條命令的退出碼既爲腳本的退出狀態碼:


測試腳本是否有語法錯誤:

bash -n +腳本名

逐條顯示執行:bash -x +腳本名


bash變量的類型:

    本地變量(局部變量)

    環境變量

    位置變量:$1,$2,.... 引用位置參數  shift:輪替

./filetest,sh /etc/fatab /etc/inittab

$1:/etc/fatab

$2:/etc/inittab

例:能接受一個參數(文件路徑),斷定:此參數若是是一個存在的文件,就顯示「OK」,不然就顯示「NO such file.」

#!/bin/bash

#

if [ -e $1 ]; then

    echo "OK."

else 

    echo "NO such file."

fi


例:寫一個腳本,給腳本傳遞兩個參數,顯示兩個參數的和,成積。

#!/bin/bash

if [ $# -lt 2 ];then

    echo "Usage:file3.sh ARG1 ARG2"

fi

echo "the sum is $[$1+$2]."

echo "the product is $[$1*$2]"


    特殊變量 

    $?:上一條命令的退出狀態碼

    $#:參數的個數

    $*:參數列表

    $@:參數列表

相關文章
相關標籤/搜索