码迷,mamicode.com
首页 > 系统相关 > 详细

Shell 编程 case语句

时间:2019-10-08 09:24:59      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:等于   img   echo $?   cal   root   mamicode   逻辑或   local   localhost   

技术图片

本篇主要写一些shell脚本条件语句的使用。


条件测试

  • test 条件表达式

  • [ 条件表达式 ]

文件测试

-d:测试是否为目录(Directory)。
-e:测试文件或目录是否存在(Exist)。
-f:测试是否为文件(File)。
-r:测试当前用户是否有权限读取(Read)。
-w:测试当前用户是否有权限写入(Write)。
-x:测试是否设置有可执行权限(Excute)。
-nt:判断文件A是否比文件B新。
-ot:判断文件A是否比文件B旧。
-ef:判断两个文件是否为同一个文件,用来判断两个文件是否指向同一个inode

[root@localhost ~]# test -d /etc/ && echo $?
0
[root@localhost ~]# ls test.txt
ls: cannot access test.txt: No such file or directory
[root@localhost ~]# [ ! -e test.txt ] && touch test.txt
[root@localhost ~]# ls test.txt
test.txt

整数值比较

  • [ 整数1 操作符 整数2 ]

-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于等于(Lesser or Equal)
-ge:大于等于(Greater or Equal)

[root@localhost ~]# history | wc -l
294
[root@localhost ~]# [ `history | wc -l` -gt 100 ] && echo "Too many" || echo "Too few"
Too many
[root@localhost ~]# history -c
[root@localhost ~]# [ `history | wc -l` -gt 100 ] && echo "Too many" || echo "Too few"
Too few

字符串比较

=:第一个字符串与第二个字符串相同
!=:第一个字符串与第二个字符串不相同
-z:检查字符串是否为空,对于未定义或赋予空值的变量视为空串

逻辑测试

&&:逻辑与,表示而且,使用test命令测试时,可改为-a
||:逻辑或,表示或者使用test命令测试时,可改为-o
!:逻辑否,表示

if 单分支

[root@localhost ~]# vim score.sh
#!/bin/bash
read -p "请输入成绩:" score
if [ $score -ge 60 ]
then
  echo "成绩合格"
fi
[root@localhost ~]# chmod +x score.sh 
[root@localhost ~]# ./score.sh 
请输入成绩:80
成绩合格
[root@localhost ~]# ./score.sh 
请输入成绩:40

if 双分支

[root@localhost ~]# vim score.sh
#!/bin/bash
read -p "请输入成绩:" score
if [ $score -ge 60 ]
then
  echo "成绩合格"
else
  echo "成绩不合格"
fi
[root@localhost ~]# ./score.sh 
请输入成绩:80
成绩合格
[root@localhost ~]# ./score.sh 
请输入成绩:40
成绩不合格

if 多分支

[root@localhost ~]# vim score.sh
#!/bin/bash
read -p "请输入成绩:" score
if [ $score -ge 90 ]
then
  echo "成绩优秀"
elif [ $score -ge 60 ]
then
  echo "成绩合格"
else
  echo "成绩不合格"
fi
[root@localhost ~]# ./score.sh 
请输入成绩:90
成绩优秀
[root@localhost ~]# ./score.sh 
请输入成绩:80
成绩合格
[root@localhost ~]# ./score.sh 
请输入成绩:40
成绩不合格
[root@localhost ~]# vim run.sh

if 嵌套

#!/bin/bash
read -p "请输入时间:" time
if [ $time -le 10 ]
then
  echo "您已进入决赛"
  read -p "请输入性别(man/woman)" sex
  if [ $sex = "man" ]
  then
    echo "您被分到男子组"
  else
    echo "您被分到女子组"
  fi
else
  echo "抱歉,您被淘汰"
fi
[root@localhost ~]# chmod +x run.sh 
[root@localhost ~]# ./run.sh 
请输入时间:9
您已进入决赛
请输入性别(man/woman)man
您被分到男子组
[root@localhost ~]# ./run.sh 
请输入时间:9
您已进入决赛
请输入性别(man/woman)woman
您被分到女子组
[root@localhost ~]# ./run.sh 
请输入时间:11
抱歉,您被淘汰

Shell 编程 case语句

标签:等于   img   echo $?   cal   root   mamicode   逻辑或   local   localhost   

原文地址:https://www.cnblogs.com/llife/p/11633409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!