Shell中的if和case判断语句

Posted Bwz_Learning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell中的if和case判断语句相关的知识,希望对你有一定的参考价值。

在程序的执行过程中,总会遇到各种各样的情况。而作为一个功能相对完善的程序来讲,应该可以根据不同的情况来选择执行不同的代码。此时,我们需要用到条件判断语句。条件判断语句是一种最简单的控制语句,该语句是的程序根据不同的条件来执行不同的程序分支。

使用if语句进行条件判断

条件判断语句可以使用if语句来实现,最简单的if语句的语法如下:

if expression
then 
   statement1
   statement2
   ..........
fi

或者是下面的形式

if expression ; then 
   statement1
   statement2
   ..........
fi

在Shell程序中,如果想要将多个命令放在同一行里面,则需要使用分号将其隔开。

通过条件测试判断文件类型

#!/bin/sh 
if [ -f /bin/bash  ] ; then
   echo " /bin/bash is a file "
fi

脚本的执行结果

[root@VM_156_149_centos shell]# sh 9.sh 
 /bin/bash is a file 

通过条件测试判断文件是否创建成功

#!/bin/sh 
echo "hello world!" > ./msg.log
if [ -f ./msg.log  ] ; then
   echo " file has been created ... "
fi

脚本的执行结果,

[root@VM_156_149_centos shell]# sh 10.sh
 file has been created ... 

使用if else 语句进行条件判断

if else 语句的基本语法

if expression ; then 
   statement1
   statement2
   .....
else 
   statement3
   statement4
   .....
fi
  • if else 使用的例子
#! /bin/bash

#输出提示信息
echo "Please enter a number:"

#从键盘读取用户输入的数据
read num

#如果用户数据的数据大于10
if [ "$num" -gt 10 ] ; then
   #输出大于10的提示信息
   echo "The number is greater than 10";
else
   #输出小于等于10的提示信息
   echo "The number is equal to or less than 10"
fi
  • 程序的运行结果
[root@VM_156_149_centos shell]# sh 11.sh 
Please enter a number:
7
The number is equal to or less than 10
[root@VM_156_149_centos shell]# sh 11.sh 
Please enter a number:
11
The number is greater than 10

使用case语句进行条件判断

case语句的基本语法如下,

case variable in 
   value1)
    statement1
    statement2
    .....
    statementn ;;  #;;相当于break
   value2)
        statement1
        statement2
        .....
        statementn ;;  #;;相当于break
   .....
   *)
        statement1
        statement2
        .....
        statementn ;;  #;;相当于break
esac

利用case处理用户输入

#! /bin/bash
#输出提示信息
echo "Hit a Key ,then hit return ."

#读取用户按下的键的信息
read keypress

#case语句开始
case "$keypress" in
  #小写字母
  [[:lower:]])
     echo "Lowercase letter " ;; #这里的;;不能忘记
  #大写字母
  [[:upper:]])
     echo "Uppercase Letter " ;; #这里的;;不能忘记
  #单个数字
  [0-9])
     echo "Digit " ;;
  #其他字符
  *)
     echo "Other Letter " ;; #这里的;;不能忘记
esac
  • 程序的运行结果
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .
1
Digit 
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .
e
Lowercase letter 
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .
E
Uppercase Letter 
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .

Other Letter 

以上是关于Shell中的if和case判断语句的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句

Shell脚本中的if和case逻辑判断

六十八shell脚本中的逻辑判断文件目录属性判断if特殊用法case判断

shell脚本if判断case判断

shell脚本中的逻辑判断文件目录属性判断if特殊用法case判断

69.shell脚本中的逻辑判断文件目录属性判断if特殊用法case判断