Shell笔记:if和case条件判断
2020-04-20 09:40:31来源:博客园 阅读 ()
Shell笔记:if和case条件判断
一、if语句
单分支if语句
语法(中括号首尾的空格不能省略):
if [ 条件判断式 ];then 程序 fi #或者 if [ 条件判断式 ] then 程序 fi
示例:
#!/bin/bash #根分区的使用率如果达到80则发出警告,向屏幕输出一条提示信息。 rate=$(df -h | grep /dev/sda5 | awk '{print $5}' | cut -d "%" -f 1) if [ $rate -ge 80 ] then echo "/dev/sda5 is full!!!" fi
双分支if语句
语法:
if [ 条件判断式 ] then 程序1 else 程序2 fi
示例1:对数据进行备份
#!/bin/bash #获取当前系统时间,并以年月日的格式显示 date=$(date +%y%m%d) #获取目录/etc的大小 size=$(du -sh /etc) #如果存在目录 if [ -d /tmp/dbback ] then echo "Date is: $date" > tmp/dbback/db.txt echo "Size is: $size" >> /tmp/dbback/db.txt #在脚本中也是可以使用cd这样的命令的 cd /tmp/dbback #打包压缩文件进行备份,并且将命令执行后的信息丢弃 tar -zcf etc_$date.tar.gz /etc db.txt &>/dev/null rm -rf /tmp/dbback/db.txt else mkdir /tmp/dbback echo "Date is: $date" > tmp/dbback/db.txt echo "Size is: $size" >> /tmp/dbback/db.txt cd /tmp/dbback tar -zcf etc_$date.tar.gz /etc db.txt &>/dev/null rm -rf /tmp/dbback/db.txt fi
示例2:检查某个服务是否正常运行
#!/bin/bash port=$(nmap -sT 192.168.1.159 | grep tcp | grep http | awk '{print $2}') #使用nmap命令扫描服务器,并截取Apache服务的状态 if [ "$port"=="open" ] then echo "$(date) httpd is ok!" >> /tmp/autostart-acc.log else #重启Apache服务 /etc/rc.d/init.d/httpd start $>/dev/null echo "$(date) restart httpd!!" >> /tmp/autostart-err.log fi
多分支if语句
语法:
if [ 条件判断式1 ] then 程序1 elif [ 条件判断式2 ] then 程序2 ... else 程序n fi
示例:
#!/bin/bash # 从键盘输入读取值并赋予变量file read -p "Please input a filename: " file #判断变量file是否为空 if [ -z "$file" ] then echo "Error, ase input a filename!" #退出并设置返回码 exit 1 #判断文件是否存在 elif [ ! -e "$file" ] then echo "Error, your input is not a file!" exit 2 #判断file的值是否为普通文件 elif [ -f "$file" ] then echo "$file is a regulare file!" #判断file的值是否为目录文件 elif [ -d "$file" ] then echo "$file is a directory!" else echo "$file is an other file!" fi
二、case语句
语法:
case $变量名 in "值1") 程序1 ;; "值2") 程序2 ;; ... *) 程序n ;; esac
示例:
#!/bin/bash read -p "Please choose yes/no: " -t 30 cho case $cho in "yes") echo "Your choose is yes!" ;; "no") echo "Your choose is no!" ;; *) echo "Your choose is error!" ;; esac
原文链接:https://www.cnblogs.com/guyuyun/p/12735343.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Linux指令和shell脚本 2020-06-11
- Xshell如何配置并远程连接Linux服务器详解 2020-05-31
- Bash Shell基础笔记 2020-05-26
- linux设备驱动开发详解--读书笔记 2020-05-19
- Shell脚本关于循环的一些总结 2020-05-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash