Shell for、while循环

先顺带说下 if

1. if  条件;then else fi

如果else分支没有执行语句,可以不写。

2. if 条件;then elif 条件;then else fi

#!/bin/bash

## 定义变量,并赋值
a=10
b=20

## 判断a,b变量的关系
if [ $a -eq $b ];then
   echo "a 等于 b"
elif [ $a -gt $b ];then
   echo "a 大于 b"
else
   echo "a 小于 b"
fi

结果:

 

for 循环:

语法1:

for 变量 in 列表/数组     ##已空格 分隔符

do

  command

done

语法2:

for ((变量;条件;条件))

do

  command

done

#!/bin/bash

## for 语法1,读取每个单词 ,注意不能使用引号(加上引号,就会默认是一个单词)
for str in This is kimbo speaking
do
    echo "The str is : ${str}"
done

## for 语法2,注意使用两个小括号
for (( i=1; i<=3; i++ ))
do
echo "The i is: $i"
done

## for 语法3
for j in `seq 1 3`
do
echo "The j is: $j"
done

## for 语法4
for k in {1..3}
do
echo "The k is: $k"
done

## for 循环数组
##定义数组
db_arr=(0 1 2 3 4 5 6 7 8 9 a b c d e f)
for var_db in ${db_arr[@]}      ##循环取数据内容,默认从0开始
    do
        echo "var_db is ${var_db}"  ##打印变量
    done
for 循环

结果:

 

while 循环:

语法1:

while [条件]

do

  command

done

语法2:

while (())

do

  command

done

#!/bin/bash

## 定义变量
a=1
b=5

## while 语法1:
while [ $a -le $b ]
do
echo "语法1:The a is :$a"
a=`expr $a + 1`
done

## while 语法2:
while (( $a >= $b ))
do
echo "语法2:The a is :$a"
a=`expr $a - 1`
done
View Code

 

循环控制语句:

break : 不执行当前循环体内break下面的语句,从当前循环退出

continue : 不执行当前循环体内continue下面的语句,从循环开头 继续执行

###########while 逐行读取文件内容 

方法1:

cat ${file_name} | while read line
do
echo $line
done

方法2: 此方法可以获取循环内的变量,方法1不行。

while read line
do
echo $line
done <${file_name}

 

 

小例子:用于日常补数据,非常实用

#!/bin/bash

## 参数校验
if [ $# -ne 2 ];then
echo "Please Enter two parameter,try again."
echo "example: 20170201 20170207"
exit 1
fi

## 定义目录
dir=/home/test

## 定义变量,开始日期、结束日期
s_date=`date -d "$1" +%Y%m%d`
e_date=`date -d "$2" +%Y%m%d`

## 打印变量
echo "循环开始日期 is ${s_date}--->"
echo "循环结束日期 is ${e_date}--->"

## while 循环
while (( ${s_date} <= ${e_date} ))
do

echo "当前运行日期:${s_date}"
## 运行补数脚本
##sh ${dir}/kimbo_test.sh ${s_date} >>$dir/run.log

## 运行日期加1天
s_date=`date -d "+1 day ${s_date}" +%Y%m%d`

done
View Code

 结果:

 

转载于:https://www.cnblogs.com/kimbo/p/6363035.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值