bash脚本编程之二条件判断
1、bash中实现条件判断:
整数测试
字符测试
文件测试
2、条件测试的表达式:
[ expression ]
[[ expression ]]
test expression
3、整数比较:
-eq:测试两个整数是否相等;
-ne:测试两个整数是否不等;
-gt:测试一个数是否大于另一个数;
-lt:测试一个数是否小于一个数;
-ge:大于或等于;
-le:小于或等于;
4、命令间的逻辑关系:
逻辑与:&&
第一个条件为假时,第二个条件不用再判断,最终结果已经有;
第一个条件为真时,第二个条件必须判断;
例:[root@Ourlab ~]# id user1 &> /dev/null && echo "Hello.student."
Hello.student.
逻辑或:||
[root@Ourlab ~]# id student2 &> /dev/null || echo "No"
No
条件判断,控制结构:
单分支if语句
if 判断条件;then
statement1
statement2
...
fi
双分支if语句:
if 判断条件;then
statement1
statement2
...
else
statement3
statement4
...
fi
课后练习:
练习一:写一个脚本,完成以下任务:
1、添加5个用户,user1,....,user5;
2、每个用户的密码同用户名,而要求,添加密码完成后不显示passwd命令的执行结果信息;
3、每个用户添加完成后,都要显示用户某某已经成功添加;
#!/bin/bash#!/bin/bash
! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd --stdin user1 &>/dev/null || echo "user1 exists."
! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd --stdin user2 &>/dev/null || echo "user2 exists."
! id user3 &> /dev/null && useradd user3 && echo "user3" | passwd --stdin user3 &>/dev/null || echo "user3 exists."
USERS=`wc -l /etc/passwd | cut -d: -f1`
echo "$USERS users"
练习二:给定一个用户:
1、如果其UID为0,就显示此为管理员,否则,就显示其为普通用户;
#!/bin/bash
USERNAME=user1
USERID=`id -u $USERNAME`
[ $USERID -eq 0 ] && echo "This user1 administrator" || echo "This user1 common users"
或
#!/bin/bash
#
NAME=user1
USERID=`id -u $NAME`
if [ $USERID -eq 0 ]; then
echo "$NAME is admin."
else
echo "$NAME is common."
fi
阅读(860) | 评论(0) | 转发(0) |