条件判断类型:
整数测试
字符测试
文件测试
条件表达式: [ exppression ] ` expression ` test expression
注意一定要加空格前后都要加
整数比较: -eq 测试两个整数是否相等,相等为真,不等为假。 equal
-ne 测试两个整数是否不相等,不相等为真,否则为假 not equal
-gt 测试一个整数是否大于另一个,大于为真,否则为假。 greater than
-lt 测试一个速度是否小于另一个,小于为真,否则为假。 less than
-ge 大于或等于 greater than or equal
-le 小于或等于 less than or equal
命令间的逻辑关系 逻辑与 && 逻辑或 ||
变量命名规则:1.只能包含字母、数字和下划线,并且不能数字开头。
2.不应该跟系统中已有的环境变量重名。
3.最好做到见名知意。(即看到名字明白其含义)。
下面则是几个应用小实例:
整数比较:
比较两个变量其中一个是否比另一个大:
[root@localhost ~]# A=3
[root@localhost ~]# B=2
[root@localhost ~]# [ $A -gt $B ] (切记要加空格哦!!前后都要,否则会提示语法问题)
[root@localhost ~]# echo $?
0
[root@localhost ~]#
逻辑与&&和逻辑或|| 的运用
逻辑与&&
[root@localhost ~]# id user1 &> /dev/null && echo "hello, user1"
hello, user1
[root@localhost ~]#
上边的命令的含义是 如果前边的命令为真(即执行成功)则后边也跟着执行
即串连电路 第一个为真则检查第二条,
即两条命令都执行
真 真 结果为真
假 真 结果为假
真 假 结果为假
假 假 结果为假
逻辑或||
[root@localhost ~]# id user2 &> /dev/null || useradd user2
此命令解释: 如果用户不存在则添加此用户逻辑或||
只要有一个真则结果为真 反过来 只有全为假结果才为假 即:
真 真 结果真
真 假 结果真
假 真 结果真
假 假 结果假
即并连电路,有一条电路通则结果就通
[root@localhost ~]# ! id user1 &> /dev/null && useradd user1
非 ! 即 非真即假 非假即真 结合后边的 与运算 也可以实现
如果用户不存在则添加此用户
条件判断 控制结构
单分支IF语句
if 如果 判断条件; then 然后(注意如果then和if不在同一行可以省略;分号)
statement1
statement2
...
if (结束)
双分支语句
if 判断条件
then 然后
statement 1
statement2
statement3
else 否则
statement4
statement5
fi 结束
上边的相信估计看不懂,,下边举一个例子:
显示一个用户的是否为系统用户 即ID为0 如果是则输出administrator 不是则 common
此脚本写法:
#!/bin/bash
NAME=root
if [ `id -u $NAME` -eq 0 ] ;
then
echo "this is administrator"
else
echo "this is common user"
fi
解释: 如果变量$NAME即root的ID为0则输出this is administrator
否则 即ID不等于0时 则输出 this is common user