Shell 编程 case语句

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


条件测试

  • test 条件表达式
  • [ 条件表达式 ]

文件测试

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

[[email protected] ~]# test -d /etc/ && echo $?
0
[[email protected] ~]# ls test.txt
ls: cannot access test.txt: No such file or directory
[[email protected] ~]# [ ! -e test.txt ] && touch test.txt
[[email protected] ~]# 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)

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

字符串比较

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

逻辑测试

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

if 单分支

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

if 双分支

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

if 多分支

[[email protected] ~]# vim score.sh
#!/bin/bash
read -p "请输入成绩:" score
if [ $score -ge 90 ]
then
  echo "成绩优秀"
elif [ $score -ge 60 ]
then
  echo "成绩合格"
else
  echo "成绩不合格"
fi
[[email protected] ~]# ./score.sh
请输入成绩:90
成绩优秀
[[email protected] ~]# ./score.sh
请输入成绩:80
成绩合格
[[email protected] ~]# ./score.sh
请输入成绩:40
成绩不合格
[[email protected] ~]# 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
[[email protected] ~]# chmod +x run.sh
[[email protected] ~]# ./run.sh
请输入时间:9
您已进入决赛
请输入性别(man/woman)man
您被分到男子组
[[email protected] ~]# ./run.sh
请输入时间:9
您已进入决赛
请输入性别(man/woman)woman
您被分到女子组
[[email protected] ~]# ./run.sh
请输入时间:11
抱歉,您被淘汰

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

时间: 2024-10-09 04:47:37

Shell 编程 case语句的相关文章

Shell编程——case语句与循环语句(3)

case多分支语句 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 实例1 击键类型识别 提示用户输入一个字符 判断出该字符是字母,数字或者其他字符 #!/bin/bash read -p "请输入一个字符:" key case $key in [a-z] | [A-Z]) echo "你输入的是字母" ;; [0-9]) echo "你输入的是数字" ;; *) echo "你输入的是特殊字符" esac 实

(九)shell中case语句、程序传参、while

2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中的switch case不同.shell中的case默认就是匹配上哪个执行哪个,不会说执行完了还去执行后面的其他case(就好像shell中的case语言默认都带了break). 2.2.6.2.调用shell程序的传参(1)C语言中可以通过main函数的argc和argv给程序传参(详情参考<4.

Shell脚本编程——case语句

天我为大家分享的是关于如何用case语句去写一些选择执行的脚本.case语句主要合适应用于一些选择条件比较复杂的脚本中,如果我们用if多分支语句也能写出来,但是显的太哆嗦,此时我们的最佳选择就就是case语句. 条件判断:case语句      case 变量引用 in      PAT1)      分支1      ;;      PAT2)      分支2      ;;      ...      *)      默认分支      ;;      esac 示例代码: 1 #!/bi

【转载】shell编程——if语句 if -z -n -f -eq -ne -lt

shell编程中条件表达式的使用 if  条件then Commandelse Commandfi                              别忘了这个结尾 If语句忘了结尾fitest.sh: line 14: syntax error: unexpected end of fi if 的三种条件表达式 ifcommandthen if 函数then  命令执行成功,等于返回0 (比如grep ,找到匹配)执行失败,返回非0 (grep,没找到匹配) if [ expressi

Shell的case语句

Shell case语句为多选择语句.可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: 代码如下: case 值 in模式1)    command1    command2    ...    commandN    ;;模式2)    command1    command2    ...    commandN    ;;esac case工作方式如上所示.取值后面必须为单词in,每一模式必须以右括号结束.取值可以为变量或常数.匹配发现取值符合

Shell 编程 循环语句

本篇主要写一些shell脚本循环语句的使用. for 循环 指定次数 #!/bin/bash for ((i=1;i<=10;i++)) do echo $i done [[email protected] ~]# vim num.sh [[email protected] ~]# chmod +x num.sh [[email protected] ~]# ./num.sh 1 2 3 4 5 6 7 8 9 10 遍历循环 #!/bin/bash TMP=$(cat username.txt

理论+实操:shell之case语句for/while/until循环语句、函数、数组-满满的干货

前言: 单引号表示纯符号 用双引号表字符串 case多分支语句 循环语句 for循环语句 while循环语句 until循环语句 shell函数 shell数组 一 : case语句的结构 1.1 case结构 多分支表现形式:if语句,case语句 case 语句可以使用正则表达式,正则表达式后面会去阐述 针对变量的不同取值,分别执行不同的命令程序 case 中::表示一句话的结束 如果匹配某一个固定值,大多数用caes,其适用于某一个固定值 如果匹配某一个区间范围,大多数用if else 语

linux下Bash编程case语句及编写脚本(八)

1.case语句,格式如下: case 变量 in 值1) 语句1 ... ;;  每分支语句以分号结束 值2) 语句2 ... ;; *)    其他,相当于if语句else 语句3 ... ;; esac   整条case语句结束 2.编写一个任意添加与删除用户的脚本,要求如下: 2.1:如果脚本选项是-a或--add:,将添加用户; 如果选项是-d或--del,将删除用户, 如果是-h或--help显示帮助信息,如果是-v或--verbose显示执行过程,否则不显示执行过程 2.2:脚本选

Shell编程——循环语句

2.case 语句 只判断一种条件关系 语法: case ¢变量名 in "值1") 程序1 ;; "值2") 程序2 ;; *) 程序3 ;; esac 3.for循环 1)语法:(将值赋给变量执行程序,有几个值就执行几次) for 变量名 in 值1 值2 值3.... do 程序 done 2)语法:加法用算 循环控制条件成立时执行下面的程序 (注意:双括号用于加减算法,双括号与 中间值之间应有一个空格) for(( 初始值:循环控制条件:变量变化 )) do