条件判断式语句

文件类型判断

测试选项 作用
-d 文件 是否是目录
-e 文件 是否存在
-f 文件 是否是文件

整数之间的比较

测试选项 作用
整数1 -eq 整数2 相等
整数1 -ne 整数2 不相等
整数1 -gt 整数2 大于
整数1 -lt 整数2 小于
整数1 -ge 整数2 大于等于
整数1 -le 整数2 小于等于

文件权限

测试选项 作用
-r 文件 是否可读
-w 文件 是否可写
-x 文件 是否可执行

字符串判断

测试选项 作用
-z 字符串 是否为空,为空返回真
-n 字符串 是否为空,非空返回真
字符串1 == 字符串2 ==
字符串1 != 字符串2 !=

多重条件判断

测试选项 作用
判断1 -a 判断2
判断1 -o 判断2
!判断
# 两种判断格式
# test -e /root/install.log
# [-e /root/install.log] //推荐[-d /root] && echo "yes" || echo "no"
复制代码

单分支if语句

#!/bin/bash

# 判断登陆的用户是否是root
test=$(env | grep "USER" | cut -d "=" -f 2)if [ "$test" == root ]thenecho "Current user is root"
fi
复制代码
#!/bin/bash

# 判断分区使用率
rate=$(df -h | grep "/dev/vda1" | awk '{print $5}' | cut -d "%" -f 1)if [ $rate -ge 1 ]thenecho "Warming /dev/vda1 is full !!"
fi复制代码

双分支if语句

#!/bin/bash

read -t 30 -p "Please input a dir: " dirif [ -d "$dir" ]thenecho "yes"elseecho "no"
fi
复制代码
#!/bin/bash

#检测apache的运行状态(脚本名字坚决不能包含httpd,否则脚本会失效)
test=$(ps aux | grep httpd | grep -v grep)if [ -n "$test" ]thenecho "$(date) httpd is ok!" >> /tmp/autostart-acc.logelse/etc/rc.d/init.d/httpd start &> /dev/nullecho "$(date) httpd restart httpd!!" >> /tmp/autostart-acc.log
fi
复制代码

多分支if语句

#!/bin/bash

read -p "Please input a filename : " fileif [ -z "$file" ]thenecho "Error, please input a filename "exit 1
elif [ ! -e "$file" ]thenecho "Your input is not a file! "exit 2
elif [ -f "$file" ]thenecho "$file is a regulare file!"
elif [ -d "$file" ]then echo "$file is a directory!"
elseecho "$file is an other file!"
fi
复制代码

多分支case语句

#!/bin/bash

read -t 30 -p "Please input yes/no : " chocase "$cho" in"yes")echo "yes";;"no")echo "no";;"*")echo "Please input right content";;
esac
复制代码

for循环

#!/bin/bash

# 批量解压文件
cd /root/test/
ls *.tar.gz > ls.log
ls *.tgz >> ls.logfor i in $( cat ls.log )dotar -zxf $i & > /dev/nulldonerm -rf ls.log
复制代码
#!/bin/bash

s=0
for (( i=1;i<=100;i=i+1 ))dos=$(( $s+$i ))done
echo $s
复制代码
#!/bin/bash

# 批量添加指定数量的用户read -p "Please input user name : " -t 30 name
read -p "Please input number of users : " -t 30 num
read -p "Please input user pass : " -t 30 passif [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]theny=$(echo $num | sed 's/[0-9]//g')if [ -z "$y" ]thenfor (( i=1;i<=$num;i=i+1 ))do/usr/sbin/useradd $name$i &> /dev/nullecho $pass | /usr/bin/passwd --stdin $name$i &> /dev/nulldonefi
fi
复制代码
#!/bin/bash

#批量删除for i in $( cat /etc/passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1 )douserdel -r $idone
复制代码

while循环和until循环

#!/bin/bash

i=1
s=0while [ $i -le 100 ]dos=$(( $s+$i ))i=$(( $i+1))doneecho "This sum is : $s"
复制代码
#!/bin/bash

i=1
s=0util [ $i -ge 100 ]dos=$(( $s+$i ))i=$(( $i+1))doneecho "This sum is : $s"
复制代码

Shell基础之条件判断 分支判断相关推荐

  1. 【linux】linux shell if 多条件 并行 字符串判断

    1.概述 1.1 Shell字符串比较相等.不相等方法小结 #!/bin/sh#测试各种字符串比较操作. #shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号 ...

  2. shell基础--条件判断if和case

    目录 一.条件判断 1.按照文件类型进行判断 2.按照文件权限进行判断 3.两个文件之间进行比较 4.两个整数之间比较 5.字符串的判断 6.多重条件判断 二.if条件判断 1.单分支if条件语句 2 ...

  3. php case 多个条件判断语句,Shell case语句(多分支条件判断)

    case 语句和 if-elif-else 语句一样都是多分支条件语句,不过和多分支 if 条件语句不同的是,case 语句只能判断一种条件关系,而 if 语句可以判断多种条件关系. case 语句的 ...

  4. php switch 函数,PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

    Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择.以PHP来说,switch(开关语句)常和case break default一起使用 典型结构 switch($control ...

  5. 8.shell 分支判断 if else

    分支判断 if else 1. if 语句 2. if else 语句 3. if elif else 语句 1. if 语句 shell 中的if 语句有两种写法,它的语法格式为: # 第一种写法: ...

  6. Python基础之条件判断

    Python基础之条件判断 一.环境介绍 二.条件判断介绍 三.if语句的使用 1.if的第一种使用方法 2.if的第二种使用方法 3.if的第三种使用方法 4.if的第四种使用方法 四.if判断的运 ...

  7. python基础-分支判断语句(4)

    1.分支判断语句 1.单一if结构 2.if-else结构 3.if-elif-else结构 4.if嵌套结构 2.单一if结构 只有一种情况的时候 if 条件:执行语句 说明: if后面的条件成立, ...

  8. Shell攻关之条件判断与流程控制

    条件判断与流程控制 一.条件判断式语句 1.按照文件类型判断 (1) 常用: -d 文件 判断该文件是否存在,并且是否为目录文件(是目录为真)-e 文件 判断该文件是否存在(存在为真)-f 文件 判断 ...

  9. java基础语法——条件判断与循环语句

    目录 一.流程控制语句 流程控制语句分类 二.顺序结构 顺序结构概述 顺序结构图 三.选择结构 选择结构概述 选择结构(if语句1) 选择执行图1 选择结构(if语句2) 选择执行图2 选择结构(if ...

最新文章

  1. java web开发周志_javaweb学习笔记及周报告
  2. 刚刚,YOLOv4重磅更新!快来一睹论文真容吧!
  3. docker 卸载镜像_Centos7 安装 Docker
  4. c++ 线程什么时候run_阿里后端Java面试题:启动线程是start()还是run()?为什么?...
  5. java随机姓名_Java生成随机姓名、性别和年龄的实现示例
  6. c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...
  7. 检测文件是否有BOM 头,并删除BOM头(php)
  8. 禁止i5笔记本按Ctrl+Alt+向下键翻转屏幕
  9. java二维码小试牛刀
  10. 2020中国数字化转型优秀案例征集
  11. Q96:PT(3.5):木纹纹理(Wood Texture)
  12. 百度测试linux面试题,【百度百度Linux面试题】面试问题:Linux查看… - 看准网
  13. win7 简体中文旗舰版 MSDN官方原版
  14. chattr 锁定文件
  15. chrome调试工具使用技巧汇总
  16. 401.3 您未被授权查看该页 错误原因和解决方案
  17. 计算机图形学直线算法论文,《计算机图形学》中直线生成算法的教学心得
  18. 易班轻应用富文本介绍
  19. 【Python】【Java】【面试】【WordPress】【深度学习】【开源软件】| Chat · 预告
  20. 化妆品标签宣称禁用词、风险词汇总

热门文章

  1. Error when loading the SDK:发现了含有元素 'd:skin' 开头的无效内容
  2. Python DataFrame数据清洗后行索引不连续——reset_index
  3. 神经网络 | Hopfield神经网络(附python源代码)
  4. Ubuntu | ubuntu 中配置静态 IP
  5. C语言 | 基于MPU6050的卡尔曼滤波算法(代码类)
  6. java 定义一组常量用什么最好_Java语言中定义常量注意事项解析
  7. strnicmp,strncmpi方法
  8. linux lynx 源码,Lynx字符浏览器移植
  9. 正则化的通俗解释_干货|深度学习中的正则化技术概述(附Python+keras实现代码)...
  10. PyQt5 笔记5 -- 消息框(QMessageBox)