shell中的分支

if语句

  • 语法1
if 条件
then 命令(集合)
fi

这里的条件就是使用test语句或者中括号语句(前一篇文章已经总结)
注意if语句必须以fi终止

练习:

#if test
if [ "13" -lt "12" ]  # "13" 前一个空格,“13”后也有一个空格。
then
        echo "yes 13 is less then 12"
else
        echo "NO"
fi
  • 语法2
if 条件1
then 
     命令1
elif 条件2
then 
     命令2
else
     命令3
fi
#!/bin/bash
#if test
#this is a comment line
echo "Enter your filename:"
read myfile
if [ -e $myfile ]
then
   if [ -s $myfile ];then
      echo "$myfile exist and size greater than zero"
   else
      echo "$myfile exist but size is zero"
   fi
else
    echo "file no exist"
fi

case多选择语句

case多选择语句格式:

case 变量/表达式 in
模式1)
    命令1
    ;;
模式2)
    命令2
    ;;
esac
  • case取值后面必须为单词in;
  • 每一模式必须以右括号结束。
  • 取值可以为变量或常数。
  • 匹配发现取值符合某一模式后,其后的所有命令开始执行,直到;;
  • 模式匹配*表示任意字符; ?表示任意单字符; [..](注意:只有两个点)表示类或范围中任意字符
#!/bin/bash
#case select
echo -n "enter a number from 1 to 3:"
read num
case $num in
1)
        echo "you select 1"
        ;;
2)
        echo "you select 2"
        ;;
3)
        echo "you select 3"
        ;;
y|Y)
        echo “you select y”
        ;;
*)
        echo "`basename $0`:this is not between 1 and 3">&2
        exit;
        ;;
esac
  • 所有的模式具有优先级,按照出现的顺序优先匹配
  • 模式可以写成表达式表示一个范围如y|Y
  • 不能像C语言switch-case一样,将执行相同操作的多个模式写在一起,如果多个模式执行同一个操作,用|把他们组合起来,表示其中一个被匹配上执行相应的分支操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值