变量
- 普通变量
${var}
${var/oldPattern/newPattern}
:将第一个符合旧模式的数据替换为新模式(非贪婪模式)${var//oldPattern/newPattern}
:将全部符合旧模式的数据替换为新模式(贪婪模式)
- 特殊变量
字符串
- 使用双引号
"
包裹的字符串:
- 内容中包含允许被解析的变量或允许被解析的转义字符。
- 使用单引号
'
包裹的字符串:
- 内容中包含不允许被解析的变量或不允许被解析的转义字符。
if选择结构
if [ 布尔表达式 ]
then
选择分支
fi
if-else选择结构
if [ 布尔表达式 ]
then
选择分支一
else
选择分支二
fi
if-else if选择结构
if [ 布尔表达式一 ]
then
选择分支一
elif [ 布尔表达式二 ]
then
选择分支二
else
选择分支三
fi
while循环结构
while [ 布尔表达式 ]
do
循环体
done
算术运算符
运算符 | 说明 | 举例 |
---|
+ | 加 | expr $a + $b |
- | 减 | expr $a - $b |
\* | 乘 | expr $a \* $b |
/ | 除 | expr $a / $b |
% | 取余 | expr $a % $b |
用于布尔表达式中的运算符
运算符 | 说明 | 举例 |
---|
-eq | 等于 | [ $a -eq $b ] |
-ne | 不等于 | [ $a -ne $b ] |
-gt | 大于 | [ $a -gt $b ] |
-lt | 小于 | [ $a -lt $b ] |
-ge | 大于等于 | [ $a -ge $b ] |
-le | 小于等于 | [ $a -le $b ] |
! | 非运算 | [ ! false ] |
-o | 或运算 | [ $a -lt 20 -o $b -gt 100 ] |
-a | 与运算 | [ $a -lt 20 -a $b -gt 100 ] |
运算符 | 说明 | 举例 |
---|
= | 等于 | [ $a = $b ] |
!= | 不等于 | [ $a != $b ] |
-gt | 大于 | [ $a -gt $b ] |
-lt | 小于 | [ $a -lt $b ] |
-ge | 大于等于 | [ $a -ge $b ] |
-le | 小于等于 | [ $a -le $b ] |
! | 非运算 | [ ! false ] |
-o | 或运算 | [ $a -lt 20 -o $b -gt 100 ] |
-a | 与运算 | [ $a -lt 20 -a $b -gt 100 ] |
-z | 检测字符串长度是否为0,为0则返回true | [ -z $a ] |
-n | 检测字符串长度是否为0,不为0则返回 true | [ -n $a ] |
str | 检测字符串是否为空,不为空则返回true | [ $a ] |
运算符 | 说明 | 举例 |
---|
-d | 检测文件是否是目录,如果是目录,则返回true | [ -d $file ] |
-r | 检测文件是否可读,如果可读,则返回true | [ -r $file ] |
-w | 检测文件是否可写,如果可写,则返回true | [ -w $file ] |
-x | 检测文件是否可执行,如果可执行,则返回true | [ -x $file ] |
-s | 检测文件是否为空,即文件大小是否等于0,如果不为空,则返回true | [ -s $file ] |
-e | 检测文件或目录是否存在,如果存在,则返回true | [ -e $file ] |