天天看點

檔案測試

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

整數測試:

   -gt 大于

   -le 小于等于

   -ne 不等于

   -eq 等于

   -ge 大于等于

   -lt 小于

測試方法:

[ expression ] 注意前後都要個空格,否則文法錯誤 (指令測試法)

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

test expression 

例如:

INT1=63

INT2=77

[ $INT1 -eq $INT2 ]

[[ $INT1 -eq $INT2 ]

test $INT1 -eq $INT2

檔案測試:

-e FILE(路徑):測試檔案是否存在

-f FILE:測試檔案是否為普通檔案

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

-r FILE:測試目前使用者對指定檔案是否有讀取權限

-w

-x

[ -e /etc/inittab ]

exit:退出腳本

exit #

如果腳本沒有明确定義退出狀态碼,那麼,最後執行的一條指令的退出碼即為腳本的退出狀态碼

bash -n 腳本 (測試腳本是否有文法錯誤的)

bash -x 腳本 (單步執行) 

多分支的if語句:

if 判斷條件1;then

 statement1

 ...

elif 判斷條件2;then

 statement2

elif 判斷條件3;then

 statement3

fi

練習:寫一個腳本

給定一個檔案:

如果是一個普通檔案,就顯示之

如果是一個目錄,也顯示之

否則,此為無法識别檔案

FILE="/mnt/rice6"

FILENAME=`$FILE | cut -d'/' -f3`

if [ ! -e $FILE ]; then

 echo"此檔案不存在"

 exit 6 

if [ -f $FILE ]; then

 echo"$FILENAME是一個檔案" 

elif [ -d $FILE ]; then

 echo"$FILENAME是一個目錄"

else

 echo"無法識别"

bash變量的類型

 作用域:目前shell程序  本地變量(局部變量)

 作用域:目前shell程序及其子程序   環境變量

 位置變量:$1,$2,如: ls /etc/passwd /mnt/test

 $1:/etc/passwd

 $2:/mnt/test

 特殊變量:

  $?:上一條指令的退出狀态碼

  $#:參數的個數

  $*:參數清單

  $@:參數清單

繼續閱讀