1. 程式人生 > >shell-if表示式(-f,-d,-s,-r,-w,-x,-eq,-ne,-ge,-gt,-le,-lt )

shell-if表示式(-f,-d,-s,-r,-w,-x,-eq,-ne,-ge,-gt,-le,-lt )

檔案表示式

if [ -f file ] 如果檔案存在
if [ -d … ] 如果目錄存在
if [ -s file ] 如果檔案存在且非空
if [ -r file ] 如果檔案存在且可讀
if [ -w file ] 如果檔案存在且可寫
if [ -x file ] 如果檔案存在且可執行

整數變量表達式

if [ int1 -eq int2 ] 如果int1等於int2
if [ int1 -ne int2 ] 如果不等於
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<

字串變量表達式

If [ $a = $b ] 如果string1等於string2
字串允許使用賦值號做等號
if [ $string1 != $string2 ] 如果string1不等於string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 為空
if [ $sting ] 如果string 非空,返回0 (和-n類似)

s​h​e​l​l​中​條​件​判​斷​i​f​中​的​-​z​到​-​d​的​意​思

[ -a FILE ] 如果 FILE 存在則為真。
[ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。

[ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。

[ -d FILE ] 如果 FILE 存在且是一個目錄則為真。

[ -e FILE ] 如果 FILE 存在則為真。
[ -f FILE ] 如果 FILE 存在且是一個普通檔案則為真。

[ -g FILE ] 如果 FILE 存在且已經設定了SGID則為真。
[ -h FILE ] 如果 FILE 存在且是一個符號連線則為真。

[ -k FILE ] 如果 FILE 存在且已經設定了粘制位則為真。 [

-p FILE ] 如果 FILE 存在且是一個名字管道(F如果O)則為真。

[ -r FILE ] 如果 FILE 存在且是可讀的則為真。

[ -s FILE ] 如果 FILE 存在且大小不為0則為真。
[ -t FD ] 如果檔案描述符 FD 開啟且指向一個終端則為真。

[ -u FILE ] 如果 FILE 存在且設定了SUID (set user ID)則為真。

[ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則為真。

[ -x FILE ] 如果 FILE 存在且是可執行的則為真。

[ -O FILE ] 如果 FILE 存在且屬有效使用者ID則為真。

[ -G FILE ] 如果 FILE 存在且屬有效使用者組則為真。 [ -L FILE ] 如果 FILE 存在且是一個符號連線則為真。
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則為真。
[ -S FILE ] 如果 FILE 存在且是一個套接字則為真。
[ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2,or 如果 FILE1 exists and FILE2 does not則為真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則為真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的裝置和節點號則為真。

[ -o OPTIONNAME ] 如果 shell選項 “OPTIONNAME” 開啟則為真。

[ -z STRING ] “STRING” 的長度為零則為真。