shell 脚本循环与case选择

1. 循环

1.1 不定循环

1.1.1  while

当条件为真时就进行循环,条件不成立时退出

提示用户输入“y”或“Y”来终止程序。

-a 用在判断式中表示"&&"(and)

while [ "$aa" != "y" -a "$aa" != "Y" ]
do
    read -p "please input y/Y to stop this program: " aa
done

1.1.2 until

当条件成立时就终止循环,否则持续循环

提示用户输入“y”或“Y”来终止程序。

-o 用在判断式中表示"||"(or)

until [ "$aa" == "y" -o "$aa" == "Y" ]
do
    read -p "please input y/Y to stop this program: " aa
done

1.2 固定循环 for

1.2.1 100以内数字求和

N=100
sum=0
for ((i=1; i<=$N; i++))
do
    sum=$(($sum+$i))
done
echo "$sum"

1.2.2 循环文件中的内容(按行)

dt_file="dt.txt"
for line in $(cat $dt_file)
# cat ${dt_file} | while read line
do
    echo "$line"
    # local dt=$(echo ${line} | awk '{print $1}')
done

1.2.3 日期循环

#!/bin/bash
for day in `echo 2021-07-{11..21}`
# for day in `echo {0..100}`
do
   echo ${day}
done

调用

bash -x aa.sh 2>/dev/null

2. case选择

 实现一个脚本,判断变量是否为“hello”或“world”。

function my_print(){
    echo "=^_^=: $1"
}
 
aa="world"
case $aa in
    "hello")
         my_print "is hello"
         ;;
    "world")
         my_print "is world"
         ;;
     *)
         my_print "is other"
         ;; 
esac

备注:每个case 类型结尾使用“;;”来处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值