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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值