(1)
整數測試
int1=63int2=77
[ $int1 -eq $ini2 ]
[[ $int1 -eq $int2 ]]
test $int1 -eq $int2
檔案測試:
-e file:測試檔案是否存在
-f file: 測試檔案是否為普通檔案
-d file: 測試指定路徑是否為目錄
-r file: 測試當前使用者對指定檔案是否有讀取許可權;
-w-x //測試檔案可否執行。
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規檔案,則為真
-l filename 如果 filename為符號鏈結,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執行,則為真
-s filename 如果檔案長度不為0,則為真
-h filename 如果檔案是軟鏈結,則為真
[ -e /etc/inittab ]
[ -x /etc/rc.d/rc.sysinit ]
練習:寫乙個指令碼
給定乙個檔案:
如果是乙個普通檔案,就顯示之;
如果是乙個目錄,亦顯示之;
否則,此為無法識別之檔案;
#!/bin/bash#file=/etc/rc.d/rc.sysinit
if [ ! -e $file ]; then //中括號中的!,對測試結果取反。
echo "no such file."
exit 6 //退出碼為6
fiif [ -f $file ]; then
echo "common file."
elif [ -d $file ]; then
echo "directory."
else
echo "unknown."
fi
(2)定義指令碼退出狀態碼
exit: 退出指令碼
exit #
如果指令碼沒有明確定義退出狀態碼,那麼,最後執行的一條命令的退出碼($?)即為指令碼的退出狀態碼;
測試指令碼是否有語法錯誤:
bash -n 指令碼
bash -x 指令碼:單步執行
(3)bash變數的型別:
本地變數(區域性變數)
環境變數: 作用域為當前程序及其子程序。
位置變數: $1, $2, ...
shift //輪換,shift 1 自動切換到下乙個引數。
shift 2 自動切換到下下乙個引數。以此類推。
例:test.sh 1 2 3#!/bin/bash
#echo $1 //輸出a
shift
echo $1 //輸出b
shift
echo $1 //輸出c
特殊變數:
$? //最後一條命令的狀態碼$#:引數的個數
$*: 引數列表
$@:引數列表
例./filetest.sh /etc/fstab /etc/inittab
$1: /etc/fstab
$2: /etc/inittab
練習:寫一指令碼
能接受乙個引數(檔案路徑)
判定:此引數如果是乙個存在的檔案,就顯示「ok.」;否則就顯示"no such file."
練習:寫乙個指令碼
給指令碼傳遞兩個引數(整數);
顯示此兩者之和,之乘積;
#!/bin/bash#if [ $# -lt 2 ]; then //要求使用者必須輸入引數。
echo "usage: cacl.sh arg1 arg2"
exit 8
fiecho "the sum is: $[$1+$2]."
echo "the prod is: $[$1*$2]."
練習:寫乙個指令碼,完成以下任務
1、使用乙個變數儲存乙個使用者名稱;
2、刪除此變數中的使用者,且一併刪除其家目錄;
3、顯示「使用者刪除完成」類的資訊;
•組合測試條件
-a: 與關係
-o: 或關係
!: 非關係
if [ $# -gt 1 -a $# -le 3 ]if [ $# -gt 1 ] && [ $# -le 3 ]
Sell程式設計 條件測試操作
測試表達是否成立,若成立返回0,否則返回其他數值 格式1 test條件表示式 格式2 條件表示式 最少有乙個空格1.操作符 檔案或目錄 echo 檢視前一命令的返回值 2.常用的測試操作符 d 測試是否為目錄 e 測試目錄或檔案是否存在 f 測試是否為檔案 r 測試當前使用者是否有讀取許可權 w 測...
Shell程式設計基礎 條件測試
test命令 用途 測試特定的表示式是否成立,當條件成立時,命令執行後返回值為0,否則為其他值 格式 test 條件表示式 條件表示式 注意,表示式左右有空格,方括號是必須有 常見的測試型別 測試檔案狀態 字串比較 整數值比較 邏輯測試 測試檔案狀態 格式 操作符 檔案或目錄 操作符 d測試是否為目...
Linux之shell程式設計 條件測試
1.測試檔案狀態表1 檔案狀態測試 d 目錄 s 檔案長度大於 0 非空 f 正規檔案 l 符號連線 r 可讀 x 可執行 s 檔案長度大於 0 非空 w 可寫 u 檔案有s u i d 位設定 x 可執行2.測試時使用邏輯操作符 a 邏輯與,操作符兩邊均為真,結果為真,否則為假。o 邏輯或,操作符...