首页 > 系统服务 > 详细

Shell for、while循环

时间:2017-02-03 19:44:05      阅读:328      评论:0      收藏:0      [点我收藏+]

先顺带说下 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
View Code

结果:技术分享

 

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下面的语句,从循环开头 继续执行

 

小例子:用于日常补数据

技术分享
#!/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

 结果:技术分享

 

Shell for、while循环

原文:http://www.cnblogs.com/kimbo/p/6363035.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!