bash编程之条件判断
bash编程之条件判断:判定后续操作的前提条件是否满足
1、条件判断的常用判断类型(bash内生的):
整数测试
字符测试
文件测试
2、echo $?(执行状态返回值):
0:正确
1-255:错误
布尔值:
真 假
3、逻辑运算:
与运算:
真 && 真 = 真(0)
真 && 假 = 假(非0)
假 && 真 = 假
假 && 假 = 假
或运算:
真 || 真 = 真(0)
真 || 假 = 真
假 || 真 = 真
假 || 假 = 假
非运算:
!真 = 假
!假 = 真
4、bash中如何做测试:test命令
test 比较表达式
[ 测试表达式 ]:表达式两端必须要有空格;bash的内生命令
[[ 测试表达式 ]]:同上;bash脚本编程的关键字
任何命令的执行结果也可以作为判断条件
5、bash中条件判断使用if:
单分支:
if 条件; then
分支1;
fi
双分支:
if 条件; then
分支1;
else
分支2;
fi
多分支:
if 条件; then
分支1;
elif 条件2; then
分支2;
elif 条件3; then
分支3;
...
else
分支n;
fi
只要命令用作条件,就表示引用的是其状态结果(即执行成功与否),而非命令的输出结果,因此,不能使用命令替换符.
只要希望将命令执行的结果需要保存到一个变量的时候,才需要在命令上加上反引号
bash编程之:整数测试
1、二元测试:(一般是用两个数进行比较)
num1 操作符 num2
操作符:
-eq 等于
-ne 不等于
-le:小于等于
-ge:大于等于
-lt:小于[$num1 -lt $num2]
-gt:大于[$num1 -gt $num2]
2、bash知识点之脚本自动退出
exit [n] n为不为0,1,127,255的数字
条件测试:
bash :每个命令,执行状态都有返回值
成功:0
失败:非0
$?:
脚本的状态返回值:脚本执行的最后一条命令:
自定义脚本状态返回值:exit[n],获取返回值用$?
引用命令的执行结果:使用`command`或$(command)
引用命令执行成功与否的状态结果:一定是直接执行命令。此时,通常需要将执行结果重定向至/dev/null
组合条件测试:对条件做逻辑运算
与:条件1&&条件2
条件1为假,则最终结果一定为假,否则,条件2不予执行
条件1为真,则最终条件结果决于后面条件,因此,条件2必须执行
或:条件1||条件2
条件1为真,则最终结果一定为真,否则,条件2不予执行
条件1为假,则最终条件结果决于后面条件,因此,条件2必须执行
非: !条件
与的优先级大于或,或的优先级大于非
bash编程之:字符测试,一般加引号
双目:
> : 大于
< :小于
!=, <>: 不等于
==:等于,等值比较, 变量需要加引号
=~:左侧是字符串,右侧是一个模式,判断左侧的字符串能否被右侧的模式所匹配:通常只在[[]]中使用
模式中可以使用行首、行尾锚定符,但是模式不要加引号
单目:
-n $stringVar: 字符串是否不空,不空为真,空则为假
-z $stringVar:字符串是否为空,空则为真,不空则假: