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

shell 条件测试的更多相关文章

  1. shell条件测试test

    shell条件测试可以通过以下两种方式: test   参数    测试内容 [ 参数  测试内容 ] 一.测试文件类型: test  -e   文件名          (测试文件是否存在) [ - ...

  2. shell条件测试语句实例-测试apache是否开启

    终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...

  3. 【第四章】Shell 条件测试表达式

    shell中条件测试的三种格式: 格式1: test 条件表达式格式2: [ 条件表达式 ]格式3: [[ 条件表达式 ]] 使用test: [root@host- ~]# test -f file ...

  4. 四 Shell条件测试

    条件测试操作 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,让我们可以方便的完成判断. 语法格式 test 选项 文件名或目录名 ...

  5. bash Shell条件测试

    3种测试命令: test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]]  注意:EXPRESSION前后必须有空白字符 bash的测试类型 数值测试: -eq: ...

  6. shell条件测试和流程控制

    一.条件测试操作 1.test 用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数值 格式:test 表达式 2.常见的测试类型 ①测试文件状态 格式:[ 操作符 文件 ...

  7. shell条件测试结构

    条件测试结构 if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示"成功"), 如果成功的话, 那么就执行接下来的一个或多个命令. 有一个专有命令[ ...

  8. shell条件测试

    文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...

  9. 《shell条件测试语句,字符串测试apache是否开启》

    还得我想了10分钟才明白”!=“和"-n"的用法区别,做个笔记捋一捋 第一种方法:测试apache是否开启?字符串测试 #!/bin/bash web=`/usr/bin/pgre ...

  10. Linux Shell 条件测试

    1. 文件测试 -d 目录 -s 文件非空 -f 是正规文件 -w 有写权限 -r 有读权限 -x 有执行权限 -L 符号连接 -u 文件有suid位设置

随机推荐

  1. MySQL排序问题

    直接上SQL语句: SELECT * FROM user_test ORDER BY user_name ,user_money DESC; #user_name中如果是数字会先排在前面,然后在按字母 ...

  2. Cannot destructure property `createHash` of 'undefined' or 'null'(next服务端渲染引入next-less错误).

    next中引入@zeit/next-less因next版本过低(webpack4之前的版本)无法执行next-less内置的mini-css-extract-plugin mini-css-extra ...

  3. CodeForces - 375D Tree and Queries (莫队+dfs序+树状数组)

    You have a rooted tree consisting of n vertices. Each vertex of the tree has some color. We will ass ...

  4. gradle 打包后第三方登录不上

    使用 gradlew clean assembleReleaseChannels 生成不用的渠道包后 第三方登录不上 原因:打包未设置好APP的 .keystore

  5. .net core 读取Excal文件数据及注意事项

    添加ExcelDataReader.DataSet引用. 调用下列方法: public class XlsHelper { public static System.Data.DataSet GetX ...

  6. 第二阶段:1.流程图:9.excel绘制甘特图

    后面的框都是日期 可以以一个月为周期计算或者周或者... 因为产品经理应该严格把控产品的时间 因此甘特图特别有必要 注意:任务拆解的越细 把控度越强 然后对格式进行设置 注意时间下面可以用颜色填充来表 ...

  7. python基础[18]——使用django创建一个简易的博客网站

    一.页面实现 index.html base.html post.html header.html footer.html <!-- index.html--> {% extends 'b ...

  8. 基于 WebSocket 的聊天和大文件上传(有进度提示)完美实现

    大家好,好久没有写文章了,当然不是不想写,主要是工作太忙,公司有没有网络环境,不让上网,所以写的就少了.今天是2019年的最后一天,明天就要开始新的一年,当然也希望自己有一个新的开始.在2019年的最 ...

  9. CPP STL学习笔记

    STL的概念 源地址  https://www.ev0l.art/index.php/archives/15/ <li> Iterator (迭代器)<li> Containe ...

  10. c++简单实现二叉树

    专业术语: 节点 父节点 根节点 子孙 堂兄弟 深度: 从根节点到最底层节点的层数称为深度 叶子节点: 没有子节点的节点称为叶子节点 非终端节点: 实际就是非叶子节点 度: 子节点的个数称为度 树的分 ...