zoukankan      html  css  js  c++  java
  • shell 条件测试

    1、文件相关
    -e 判断文件或者文件夹是否存在
    -d 判断目录是否存在
    -f 判断文件是否存在
    -r 判断是否有读权限
    -w 判断是否有写权限
    -x 判断是否有执行权限
    
    
    1.1命令行使用
    [root@localhost ~]# [ ! -e test/ ] && mkdir test/ #如果test/文件夹并存在,就创建。
    
    1.2脚本中使用,一般配合条件控制语句使用。
    [root@localhost 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%则提醒
    [root@localhost 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、命令行使用
    [root@localhost ~]# name=
    [root@localhost ~]# [ -z "$name" ];echo $?
    0
    [root@localhost ~]# [ -n "$name" ];echo $?
    1
    
    4、逻辑相关
    -a 几个条件都成立,才为真
    -o 条件只要一个为真,即为真
    ! 非 
    
    4.1、命令行使用
    [root@localhost ~]# [ 2 -gt 1 -a -z "$name" ] && echo ok
    ok
    
    5、正则相关
    格式:
        [[ $name =~ 正则表达式]]
    
    5.1、命令行使用
    [root@localhost ~]# num=123
    [root@localhost ~]# [[ $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
    
  • 相关阅读:
    Java -verbose:gc 命令
    JVM中启用逃逸分析
    nginx指定配制文件
    jvm笔记
    python添加tab键提示
    ssh-copy-id帮你建立信任
    救火必备linux命令
    oracle判断字符串中包函另外一个字符串
    String,StringBuffer,StringBuilder三者区别
    Python数据分析应用背景
  • 原文地址:https://www.cnblogs.com/hjnzs/p/12231763.html
Copyright © 2011-2022 走看看