一、逻辑运算
布尔运算:真、假
与运算:
真 && 真 = 真
真 && 假 = 假
假 && 真 = 假
假 && 假 = 假
或运算:
真 || 真 = 真
真 || 假 = 真
假 || 真 = 真
假 || 假 = 假
非运算:
非真 = 假
非假 = 真
二、状态返回值
echo $?
成功:则返回0
失败:则返回1-255,失败不等于假
自定义:exit [n]
三、算数运算
1、定义整形变量
let VAR_NAME=INTEGER_VALUE
declare -i VAR_NAME=INTEGER_VALUE
如果没有定义整形变量,字符型数字会被bash执行隐士类型转换参与算数运算
2、运算方式
let VAR_NAME=ARITHMATIC_EXPRESSION
VAR_NAME=$[ ARITHMATIC_EXPRESSION ]
VAR_NAME=$(( EXPRESSION ))
VAR_NAME=$( expr EXPRESSION )
3、算数运算符
+、-、*、/、%、**、+=、-+、、*=、/=、%=、++
四、比较运算测试
1、整形比较测试
-gt:大于
-lt:小于
-ge:大于等于
-le:小于等于
-eq:等于
-ne:不等于
2、字符串比较测试,根据ASCLL码大小比较字符串
双目运算符:
>:
<:
>=:
<=:
==:
!=:
=~:模式匹配,[[ "$VAR" =~ PATTERN ]]
单目运算符:
-n String:是否不空,不空则为真,空则为假
-z String:是否为空,空则为真,不空则为假
3、文件比较测试
-a/-e FILE:存在则为真,否则则为假
-f FILE:存在且为普通文件则为真,否则为假
-d FILE:存在且为目录文件则为真,否则为假
-s FILE:存在且为非空文件则为真,否则为假
-r FILE:存在且为可读文件则为真,否则为假
-w FILE:存在且为可写文件则为真,否则为假
-x FILE:存在且为可执行文件则为真,否则为假
-L/-h:存在且为符号链接文件则为真,否则为假
-b FILE:存在且为块设备则为真,否则为假
-c FILE:存在且为字符设备则为真,否则为假
-S FILE:存在且为Socket套接字文件则为真,否则为假
FILE1 -nt FILE2:FILE1的mtime新于FILE2则为真,否则为假
FILE1 -ot FILE2:FILE1的mtime旧于FILE2则为真,否则为假
五、测试方式
1、test EXPR
2、[ EXPR ]
3、[[ EXPR ]]
测试比较通常只在同一种类型间进行
六、for循环语句
说明:遍历有限的元素列表,语句在同一行用;分隔
语法:
for VAR_NAME in LIST
do
循环体
done
LIST:列表,中间包括一个或多个元素
退出条件:遍历结束
七、if条件语句
单分支if语句:
if 测试条件;then
选择分支
fi
双分支if语句:
if 测试条件;then
选择分支1
else
选择分支2
fi
多分支if语句:
if 测试条件1;then
选择分支1
elif 测试条件2;then
选择分支2
elif 测试条件2;then
选择分支3
…
elif 测试条件n;then
选择分支n
else
选择分支{n+1}
fi
原创文章,作者:princepar,如若转载,请注明出处:http://www.178linux.com/4780