shell 条件测试
1、文件相关
-e 判断文件或者文件夹是否存在 -d 判断目录是否存在 -f 判断文件是否存在 -r 判断是否有读权限 -w 判断是否有写权限 -x 判断是否有执行权限
1.1命令行使用
[ ~]# [ ! -e test/ ] && mkdir test/ #如果test/文件夹并存在,就创建。
1.2脚本中使用,一般配合条件控制语句使用。
[ script]# cat m_t.sh #!/bin/bash #移动脚本文件至指定文件夹 ls *.sh > sh.txt if [ ! -d script/ ];then mkdir script/ fi for i in `cat sh.txt` do echo $i mv $i script/ done
2、数字相关
-gt 大于 -ge 大于等于 -eq 等于 -lt 小于 -le 小于等于 -ne 不等于
2.1、小脚本,内存使用率超过80%则提醒
[ script]# cat mem.sh #!/bin/bash MEM_USE=`free -m|grep "^M"|awk '{print $3/$2 *100}'|cut -d . -f1` if [ $MEM_USE -ge 80 ];then echo -e "\e[1;5m \e[1;31m the memory used is more then 80%\e[0m \e[0m" else echo -e "\e[1;5m \e[1;32m the memory used is correct...\e[0m \e[0m" fi
3、字符串相关
-z 判断字符串是否为空,为空返回 true -n 判断字符串是否为空,非空返回 true == 判断两个字符串是否相等 相等返回 true != 判断两个字符串是否相等 不相等返回true
3.1、命令行使用
[ ~]# name= [ ~]# [ -z "$name" ];echo $? 0 [ ~]# [ -n "$name" ];echo $? 1
4、逻辑相关
-a 几个条件都成立,才为真 -o 条件只要一个为真,即为真 ! 非
4.1、命令行使用
[ ~]# [ 2 -gt 1 -a -z "$name" ] && echo ok ok
5、正则相关
格式: [[ $name =~ 正则表达式]]
5.1、命令行使用
[ ~]# num=123 [ ~]# [[ $num =~ ^[0-9]+ ]] && echo ok ok
添加用户脚本
#!/bin/bash read -p "请输入用户前缀,密码,数量:" pre pass num if [[ ! $num =~ ^[0-9]+ ]];then ehco "请输入数字" fi cat <<EOF 你输入的用户名前缀为:$pre 你设立的密码为:$pass 你设定用户个数为:$num EOF while true do read -p "你确定要创建?" ch case $ch in y|yes) for i in `seq $num`;do id $pre$i &>/dev/null if [ $? -ne 0 ];then useradd $pre$i echo "用户 $pre$i 创建成功..." echo $pass|passwd --stdin $pre$i &>/dev/null else continue echo "用户 $pre$i 已经存在..." fi done break ;; n|no) exit 1 ;; *) echo "错误输入,请重新输入..." esac done
相关推荐
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
wangzhaotongalex 2020-09-22
流年浅滩 2020-10-23
liujianhua 2020-10-22
woaimeinuo 2020-10-21
tufeiax 2020-09-03
laisean 2020-09-01
vvu 2020-09-16
libao 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17