歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> SHELL編程-條件測試

SHELL編程-條件測試

日期:2017/3/1 10:08:50   编辑:SHELL編程

1. 基本語法
test condition

[ condition ]
使用括號方式時,條件與括號之間要加空格。

2. 測試文件狀態
例:測試文件 scores.txe 是否可執行。

[root@localhost ~]# [ -x scores.txt ]

[root@localhost ~]# echo $?

1

條件測試可以使用以下條件表達式:
-d 目錄
-f 文本文件
-L 符號鏈接
-s 文件非空
-r 可讀
-w 可寫
-x 可執行
-u 文件有suid位設置


3. 字符串測試
字符串測試是條件判斷中最重要的部分,
例:測試兩個字符是否相等。退出狀態變量 $?,0表示成功,1表示失敗。
if 命令就是使用該值做判斷。

[root@localhost ~]# [ "aa" = "bb" ]

[root@localhost ~]# echo $?

1

if [ -x scores.txt ]; then echo 11111; fi;

字符串測試可以使用以下條件表達式:
= 兩字符串相等。
!= 兩字符串不等。
-z 空串。
-n 非空串。


4. 數字測試
例:測試第一個數字小於第二個數字。

[root@localhost ~]# [ "10" -lt "99" ]

[root@localhost ~]# echo $?

0

數字測試可以使用以下條件表達式:
-eq 相等。
-ne 不等
-gt 大於。
-ge 大於或等於。
-lt 小於。
-le 小於或等於。

5. expr數字運算
加法運算:expr 10 + 10
減法運算:expr 20 - 10
加法運算:expr 10 / 5
乘法運算:expr 10 \* 5
如果是非數字參加運算會報錯誤,利用此點可以用來測試數字格式。

root@localhost opt]# if expr a + 100; then echo aaaa; else echo bbbb; fi;

expr: non-numeric argument

bbbb


6. 兩個以上的條件之間的邏輯關系

[root@localhost opt]# [ -w results.txt -a -w scores.txt ]

[root@localhost opt]# echo $?

0

-a 邏輯與,兩個條件同時為0,結果為0。-o 邏輯或,只要一個條件為0,結果為0。

Copyright © Linux教程網 All Rights Reserved