快速了解shell编程语言,及shell脚本编写使用(2)

5 篇文章 0 订阅
5 篇文章 2 订阅

shell脚本编程(2)——if选择语句、循环结构、case语句

这一章主要写的是shell的if选择语句、循环语句、case语句以及一些简单的例子,能够快速了解shell中的一些结构的使用(* ^ - ^ *)

一、 shell中的if选择语句

1、单分支结构
  • 当“条件成立”时执行命令序列 ,否则不执行操作
    在这里插入图片描述
    if单分支案例: 检测/media/cdrom目录,若不存在则创建
[root@svr5 ~]\# vim mountdir.sh 
#!/bin/bash
dir="/media/cdrom/"
if [ ! -d $dir ]
then
    mkdir -p $dir
fi 
[root@svr5 ~]\# chmod +x mountdir.sh   //添加可执行权限

2、双分支结构
  • 当“条件成立”时执行命令序列1,否则执行命令序列2
    在这里插入图片描述
    if分支结构案例: 检测并判断指定的主机是否可ping通,
    ping通显示"Host $1 is up."
    不通显示"Host $1 is down."
[root@svr5 ~]\# vim pinghost.sh 
#!/bin/bash
ping -c 3 -i 0.2 -W 1 $1 &> /dev/null
if [ $? -eq 0 ] ; then
    echo "Host $1 is up."
else
    echo "Host $1 is down."
fi
[root@svr5 ~]\# chmod +x pinghost.sh

3、多分支结构
  • 相当于if语句嵌套,针对多个条件分别执行不同的操作
    在这里插入图片描述
    if多分支结构案例: 从键盘输入一个论坛积分,判断论坛用户等级
    大于等于90 神功绝世
    大于等于80,小于90 登峰造极
    大于等于70,小于80 炉火纯青
    大于等于60,小于70 略有小成
    小于60 初学乍练
[root@svr5 ~]\# vim grade.sh 
#!/bin/bash
read -p "请输入积分(0-100):" JF
if [ $JF -ge 90 ] ; then
    echo "$JF 分,神功绝世"
elif [ $JF -ge 80 ] ; then
    echo "$JF 分,登峰造极"
elif [ $JF -ge 70 ] ; then
    echo "$JF 分,炉火纯青"
elif [ $JF -ge 60 ] ; then
    echo "$JF 分,略有小成"
else
    echo "$JF 分,初学乍练"
fi
[root@svr5 ~]\# chmod +x grade.sh

二、 shell中的循环

1、for循环
  • 根据变量的不通取值,重复执行命令行序列(有次数限制)
    在这里插入图片描述
    for循环案例: 通过循环批量显示10个数字
[root@svr5 ~]\# vim for03.sh
#!/bin/bash
for i in {1..10}
do
        echo "$i"
done
[root@svr5 ~]\# chmod +x for03.sh    //给文件加执行权限
[root@svr5 ~]\# ./for03.sh           //在当前位置执行文件
2、while循环
  • 可以实现无限循环,或者有条件的终止循环
  • 只要测试结果正确,循环任务就一直执行
  • while:加冒号代表所有都正确,一直执行完(会出现死循环)
    在这里插入图片描述
    while循环案例: 有效循环脚本
[root@svr5 ~]\# vim while02.sh
#!/bin/bash
i=1
while [ $i -le 5 ]
do
        echo "$i"
        let i++
done
[root@svr5 ~]\# chmod +x while02.sh
[root@svr5 ~]\# ./while02.sh

三、case语句

1、case语法结构及特点
  • 检查变量的实际取值
  • 功能类似if,不如if强大,但是语句比if精简
  • 如果与预设的值相匹配,则执行对应的操作
    在这里插入图片描述
    case语句案例:编写一个Nginx启动脚本、脚本通过位置变量$1读取用户的操作指令,判断是start、stop、restart还是status。
[root@svr5 ~]\# vim case1.sh
case $1 in
kai)
        /usr/local/nginx/sbin/nginx ;;
guan)
        /usr/local/nginx/sbin/nginx -s stop ;;
cq)
        /usr/local/nginx/sbin/nginx -s stop
        /usr/local/nginx/sbin/nginx ;;
cha)
        netstat -ntulp | grep -q :80
        [ $? -eq 0 ] && echo "nginx服务已经开启" || echo "nginx服务未开启" ;;
*)
        echo "kai|guan|cq|cha"
esac
[root@svr5 ~]\# chmod +x case1.sh

结束啦
这篇的基本介绍就先写到这里,后面会继续更新shell脚本的一些常用的用法以及后面企业中一些实用的shell脚本的运用,感谢你们的浏览,也希望对你们有所帮助,你的点赞是我努力的动力,谢谢你们!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值