基本格式:
test expression
expression為test命令構造的運算式。
這裡expression是test命令可以理解的任何有效運算式,該簡化格式將是讀者可能會踫見的最常用格式
傳回值:
test命令或者返回0(真) 或者返回1(假).
test可理解的運算式類型分為四類:
1)判斷運算式
if test (運算式為真)
if test !運算式為假
test 運算式1 –a 運算式 2 兩個運算式都為真
test 運算式1 –o 運算式2 兩個運算式有一個為真
2)判斷字串
test –n 字串 字串的長度非零
test –z 字串 字串的長度為零
test 字串1=字串 2 字串相等
test 字串1 !=字串2 字串不等
3)判斷整數
test 整數1 –eq 整數2 整數相等
test 整數 1 –ge 整數2 整數1大於等於整數2
test 整數1 –gt 整數 2 整數1大於整數2
test 整數1 –le 整數 2 整數1小於等於整數2
test 整數1 –lt 整數 2 整數1小於整數2
test 整數1 –ne 整數 2 整數1不等於整數2
4)判斷檔案
test File1 –ef File2 兩個檔案具有同樣的裝置號和i結點號
test File1 –nt File2 檔案1比檔案2 新
test File1 –ot File2 檔案1比檔案2 舊
test –b File 檔案存在並且是塊裝置檔案
test –c File 檔案存在並且是字元裝置檔案
test –d File 檔案存在並且是目錄
test –e File 檔案存在
test –f File 檔案存在並且是正規檔案
test –g File 檔案存在並且是設定了組ID
test –G File 檔案存在並且屬於有效組ID
test –h File 檔案存在並且是一個符號連結(同-L)
test –k File 檔案存在並且設定了sticky位
test –b File 檔案存在並且是塊裝置檔案
test –L File 檔案存在並且是一個符號連結(同-h)
test –o File 檔案存在並且屬於有效使用者ID
test –p File 檔案存在並且是一個具名管道
test –r File 檔案存在並且可讀
test –s File 檔案存在並且是一個通訊端
test –t FD 檔案描述符是在一個終端開啟的
test –u File 檔案存在並且設定了它的set-user-id位
test –w File 檔案存在並且可寫
test –x File 檔案存在並且可執行
test xxx 可以簡寫成 [ xxx ] 的形式。
注意:在使用"["簡寫test時,左中括弧後面的空格和右括弧前面的空格是必需的,如果沒有空格,Shell不可能辨別運算式何時開始何時結束.
也就是說
test option file
可以全部改寫成:
[ option file ]
例如:
test –w File
改寫成
[ –w File ]
【樣本】
//判斷第一個參數是否為空白字串,不空則列印
if test -n "$1"
then
echo "$1"
fi
測試,放到檔案當中
#!/bin/sh
if test -n "$1"
then
echo "$1"
fi
執行
chmod +x test.sh
./test.sh www.linuxpig.com