基本運算符
算術運算符
val = expr 2 + 2
需要注意的是
- 表達式和運算符之間需要有空格(比如2 + 2,不能是2+2)
- 兩邊最外面的字符是`,在esc鍵下面,不是引號哦
- 乘號
*
前面必須加上反斜杠\
才能實現乘法效果,比如 `expr $a \* $b` - 條件表達式(判斷語句)要放在方括號之間,并且要有空格
- 條件語句為
if...then...else...fi
關系運算符
關系運算符只支持數字,不支持字符串,除非字符串的值都是數字
header 運算符 | header 說明 |
---|---|
-eq | equal,檢測兩個數是否相等,相等返回true |
-ne | not equal,檢測兩個數是否不相等,不想等則返回true |
-gt | great then,檢測左邊的數是否大于右邊的數,如果是則返回true |
-lt | less then,檢測左邊的數是否小于右邊的數,如果是則返回true |
-ge | great equal,檢測左邊的數是否大于等于右邊的數,如果是則返回true |
-le | less equal,檢測左邊的數是否小于等于右邊的數,如果是則返回true |
注意的是:
- 運算符有個-,不要漏掉了
布爾運算符
header 運算符 | header 說明 |
---|---|
! | 非運算符 |
-o | 或運算 |
-a | 與運算 |
例子:
if [ $a -lt 5 -o $b -gt 100 ]
邏輯運算符
header 運算符 | header 說明 |
---|---|
&& | 邏輯的AND |
例子:
if [[ $a -lt 100 || $b -gt 100 ]]
thenecho "返回 true"
elseecho "返回 false"
fi
注意的是:
- 多了個[ ]
字符串運算符
header 運算符 | header 說明 |
---|---|
= | 檢測兩個字符串是否相等,相等的話則返回true |
!= | 檢測兩個字符串是否不相等,不相等則返回true |
-z | zero,檢測字符串是否為0,為0則返回true |
-n | not zero,檢測字符串是否不為0,不為0則返回true |
str | 檢測字符串是否為空,不為空則返回true |
- 除了 = 和 != 是放在兩個字符串變量之間,其它運算符均放在字符串的前面,比如 if [ -z $a ]
文件測試運算符
只選了部分比較常用的文件測試運算符
header 運算符 | header 說明 |
---|---|
-d file | 檢測文件是否是目錄,如果是,則返回 true |
-r file | read,檢測文件是否可讀,如果是,則返回 true |
-w file | write,檢測文件是否可寫,如果是,則返回 true |
-x file | excute,檢測文件是否可執行,如果是,則返回 true |
-s file | 檢測文件是否為空(文件大小是否大于0),不為空返回 true |
-e file | 檢測文件(包括目錄)是否存在,如果是,則返回 true |
例子:
file="/var/www/runoob/test.sh"if [ -r $file ]
thenecho "文件可讀"
elseecho "文件不可讀"
fi
- read 用于輸入
- 初次聲明變量的時候不需要使用$,后面使用的時候才加上$