0
点赞
收藏
分享

微信扫一扫

Shell中的if与case选择结构语法格式

Ichjns 2023-11-10 阅读 34
1 if单分支

语法构成:

  1. if 条件测试;then
  2. 命令序列
  3. fi

[root@localhost opt]# vim test02.sh
#!/bin/bash
if [ $UID -eq 0 ];then	
  echo "我是管理员"
  echo ok
fi

[root@localhost opt]# bash test02.sh
我是管理员
ok

2 if双分支

语法构成:

  1. if 条件测试;then
  2. 命令序列1
  3. else
  4. 命令序列2
  5. fi

[root@localhost opt]# vim test02.sh
#!/bin/bash
if [ $UID -eq 0 ];then
    echo "我是管理员"
    echo ok
else
    echo "不是管理员"
    echo no
fi

[root@localhost opt]# su - zhangsan		#换用户进行测试
[zhangsan@localhost ~]$ cd /opt/
[zhangsan@localhost opt]$ bash test02.sh
不是管理员
no
[zhangsan@localhost opt]$ exit
注销
[root@localhost opt]#

3 if多分支

语法构成:

  1. if 条件测试1 ;then
  2. 命令序列1
  3. elif 条件测试2 ;then
  4. 命令序列2
  5. else
  6. 命令序列n
  7. fi

编写脚本,输入参数判断成绩;

成绩大于等于90-小于100为优秀,

成绩大于等于80-小于89为良好;

成绩大于等于60-小于79为合格;

成绩小于60为不合格。

如果输入其他数字则提示输入不规范,请输入0-100之间的数

[root@localhost opt]# vim count.sh
#!/bin/bash
read -p "请输入你的月考成绩:" a
if [ $a -gt 100 ] || [ $a -lt 0 ];then
    echo 请输入0-100的数字!!!
elif [ $a -ge 90 ];then
    echo 优秀
elif [ $a -ge 80 ];then
    echo 良好
elif [ $a -ge 60 ];then
    echo 及格
else
    echo 不及格
fi

4 case 单条判断
  1. case $变量名称 in
  2. 模式1)
  3. 命令序列1
  4. ;;
  5. 模式2)
  6. 命令序列2
  7. ;;
  8. 模式n)
  9. 命令序列n
  10. ;;
  11. *)
  12. 如果上面都不满足,则运行这条命令
  13. esac

#创建脚本,启动时输入参数与文件名可以文件
[root@localhost opt]# vim case01.sh
#!/bin/bash
case $1 in
    t)						#如果$1是t就执行touch任务
        touch $2;;			#有分号结尾
    m)						#如果$1是m就执行mkdir任务
        mkdir $2;;
    r)						#如果$1是r就执行rm -rf任务
        rm -rf $2;;
    *)
        echo "请输入t、m、r和参数"
esac

[root@localhost opt]# bash case01.sh	#要输入指定参数与文件名	
请输入t、m、r参数与文件名
[root@localhost opt]# bash case01.sh t case.txt
[root@localhost opt]# ls
case.txt

5 case 多条判断
  1. case $变量名称 in
  2. 模式1|模式2)
  3. 命令序列1
  4. ;;
  5. 模式3|模式4)
  6. 命令序列2
  7. ;;
  8. 模式n|模式m)
  9. 命令序列n
  10. ;;
  11. *)
  12. esac

[root@localhost opt]# vim case01.sh
#!/bin/bash
case $1 in
    t|tc)			#如果$1是t或者tc就执行touch任务
        touch $2;;
    m|mk)			#如果$1是m或者mk就执行mkdir任务
        mkdir $2;;
    r|rm)			#如果$1是r或者rm就执行rm -rf任务
        rm -rf $2;;
    *)
        echo "请输入t、m、r和参数"
esac

[root@localhost opt]# bash case01.sh
请输入t、m、r参数与文件名
[root@localhost opt]# bash case01.sh t case.txt
[root@localhost opt]# ls
case.txt

举报

相关推荐

0 条评论