bash中 如何实现判断
条件判断测试类型
整数测试
字符测试
文件测试
条件测试表达式
[ expression]
[[ expressionn]]
test expression
整数比较、
-eq: 测试两个整数是否相等
-ne:测试两个整数是否不等
-gt: >
-lt: <
-ge:>=
-le:<=
[liaoch@liaoch ~]$ A=3
[liaoch@liaoch ~]$ B=4
[liaoch@liaoch ~]$ [ $A -eq $B ]
[liaoch@liaoch ~]$ echo $?
1
命令的逻辑关系
逻辑与:&& 第一个为假时。第二个条件不判断
逻辑或:|| 第一个为真时,第二个条件条件不执行
如果用户不存在就添加用户
! id user7 && useradd user7
id user6 || useradd user6
变量名称:
1.只能包含字母,数字下划线,并且不能以数字开头
不能跟已有的环境变量同名
2最好做到见名值意
#!/bin/bash
LINES=`wc -l /etc/passwd`
echo $LINES
FINLINES=`echo $LINES | cut -d' ' -f1
echo $FINLINES
[ $FINLINES -gt 100 ] && echo "/etc/passwd is big fiel" || echo "is small file"
~
如果用户存在就显示用户已存在:否则就添加此用户
#!/bin/bash
LINES=`wc -l /etc/passwd`
echo $LINES
FINLINES=`echo $LINES | cut -d' ' -f1
echo $FINLINES
[ $FINLINES -gt 100 ] && echo "/etc/passwd is big fiel" || echo "is small file"
~
如果用户不存在,就添加用户,否则不添加
如果用户不存在,就添加并添加密码,否则显示已经存在
user6 is exists.
[root@liaoch ~]# ! id user7 && useradd user7 && ehco "user7" |passwd --stdin user7 || echo "user7 is exists."
id: user7:无此用户
-bash: ehco: command not found
更改用户 user7 的密码 。
passwd: 鉴定令牌操作错误
#!/bin/bash
! id user6 &> /dev/null && useradd user6 && echo "user6:" | passwd --stdin user6 || echo "user6 is exists"
! id user11 &> /dev/null && useradd user11 && echo "user11:" | passwd --stdin user11 || echo "user11 is exists"
! id use87 &> /dev/null && useradd user8 && echo "user8:" | passwd --stdin user8 || echo "user8 is exists"
USERS=`wc -l /etc/passwd | cut -d: -f1`
ehco "$USERS user"
!/bin/bash
NAME=user7
USERID=` id -u $NAME`
[ $USERID -eq 0 ] && echo "admin" || echo "commom"
条件判断控制结构
单分支if语句
if 判断条件;then
statement1
statement2
....
fi
双分支if语句
if 判断条件:; then
statement1
statement2
....
else
statement3
statement4
...
fi
#!/bin/bash
#
NAME=USER1
if id user1 &> /dev/null ;then
echo "$NAME exists."
else
echo "$NAME is not exists."
fi
echo $NAME | passwd --stdin $NAME &> /dev/null
#!/bin/bash
#
NAME=user1
USERID=' id -u $NAME'
if [ $USERID -eq 0 ] ;then
echo "$NAME IS ADMIN"
else
echo "$NAME IS COMMOM"
fi
let 算术运算表达式
let C=$A+$B
$[算术运算表达式]
C=$[$A+$B]
$((算术运算表达式))
C=$(($A+$B))
expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
C=`expr $A + $B`