Shell编程之流程控制

目录

if判断

case语句

for循环

 while循环


if判断

语法:

if [ 条件判断表达式 ]

        then

                程序

elif [ 条件判断表达式 ]

         then

                程序

else

        程序

fi

注意:

  • [ 条件判断表达式 ],中括号和条件判断表达式之间必须有空格。
  • if,elif,else 后要有空格
  • if,fi 不可省略,elif,else 可省略

示例如下:

#!/bin/bash


if [ $1 == '']

  then

    echo "参数不能为空"

elif [ $1 == 1 ]

  then

    echo "输入的数字是1"

else

  echo "输入的参数是 $1"


fi

case语句

语法:

case $变量名 in

"值1")

        程序1

;;

"值2")

        程序2

;;

。。。其他分支。。。。。。

*)

        默认执行程序

;;

esac

示例:

#!/bin/bash

case $1 in
1)
        echo "输入的值是1"
;;

2)
        echo "输入的值是2"
;;
*)
        echo "输入的值是其他值"
;;
esac

注意:

  • 每一匹配模式必须以右括号结束;
  • 取值可以为变量或常数;
  • 匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;(类似break);
  • 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令;
  • case、in 和 esac 都是 Shell 关键字, esac就是case的反写在这里代表结束case;
  • 匹配模式: 可以是一个数字、一个字符串,或者是一个简单正则表达式;

for循环

语法1:

for(( 初始值;循环控制条件;变量变化 ))

        do

                程序

        done

示例l:求1-100累加和

#!/bin/bash

for((i=1;i<=100;i++))

  do
    s=$[$s+$i]
  done

echo $s

语法2:

for 变量 in 值1 值2 值3 .。。。。。

        do

                程序

        done

示例:输出全部参数

#!/bin/bash

for i in $*
  do
    echo "输入变量是$i"
  done

 while循环

语法:

while [ 条件表达式 ]

        do

                程序

        done

 示例:求1-100累加和

#!/bin/bash

s=0
i=1

while [ $i -le 100 ]
do
    s=$[$s + $i]
    i=$[$i + 1]
done
echo $s

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值