Shell | 选择语句

本文深入探讨了Shell编程中的选择控制语句,包括if else的基本用法,如简单的if条件判断及多重if elseif的实现。此外,还详细介绍了case in结构,通过实例展示了如何根据条件判断当前是星期几。

本文我们讨论一下

        程序控制语句之一:选择

 

Shell的分支语句有以下这几个:

if else;

in case;

 

一、if else 选择:

 

最简单的if

语法:

if condition
then
    statement
fi
​
如果喜欢把if和then写成一行,要加;
if condition;then
  statement
fi
​

示例:

[root@localhost shell_protest]# sh if.sh 
hello
---------------Source----------------
[root@localhost shell_protest]# cat if.sh 
#!/bin/bash
​
if true
then 
  echo hello
fi
if-else:

if condition
then
  statement1
else
  statement2
fi

  

 

示例:判断a、b是否相等

[root@localhost shell_protest]# sh ifelse.sh 
11
22
a!=b
---------------Source----------------
[root@localhost shell_protest]# cat ifelse.sh 
#!/bin/bash
​
read a
read b
​
if (( $a == $b ))
then
    echo "a=b"
else
    echo "a!=b"
fi
​

多重if elseif在shell里面又怎么写?

 

语法:

if  condition1
then
   statement1
elif condition2
then
    statement2
elif condition3
then
    statement3
……
else
   statementn
fi

 

示例:判断星期几

[root@localhost shell_protest]# sh whichday.sh 
Input integer number: 3
Wednesday
---------------Source----------------
[root@localhost shell_protest]# cat whichday.sh 
#!/bin/bash
​
printf "Input integer number: "
read num
​
if ((num==1)); then
    echo "Monday"
elif ((num==2)); then
    echo "Tuesday"
elif ((num==3)); then
    echo "Wednesday"
elif ((num==4)); then
    echo "Thursday"
elif ((num==5)); then
    echo "Friday"
elif ((num==6)); then
    echo "Saturday"
elif ((num==7)); then
    echo "Sunday"
else
    echo "error"
fi
​

二、Case in

语法:

case 变量 in 
  情况一)
      statement1
      ;;
  情况二)
      statement2
      ;;
  *)
      default statement
esac

示例:判断周几?

[root@localhost shell_protest]# sh case.sh
Input integer number: 2
Tuesday
​
---------------Source----------------
[root@localhost shell_protest]# cat case.sh 
#!/bin/bash
​
printf "Input integer number: "
read num
​
case $num in
    1)
        echo "Monday"
        ;;
    2)
        echo "Tuesday"
        ;;
    3)
        echo "Wednesday"
        ;;
    4)
        echo "Thursday"
        ;;
    5)
        echo "Friday"
        ;;
    6)
        echo "Saturday"
        ;;
    7)
        echo "Sunday"
        ;;
    *)
        echo "error"
esac

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值