先顺带说下 if

1. if  条件;then else fi

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

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

#!/bin/bash

## 定义变量,并赋值
a=
b= ## 判断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=
b= ## while 语法1:
while [ $a -le $b ]
do
echo "语法1:The a is :$a"
a=`expr $a + `
done ## while 语法2:
while (( $a >= $b ))
do
echo "语法2:The a is :$a"
a=`expr $a - `
done

循环控制语句:

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 ];then
echo "Please Enter two parameter,try again."
echo "example: 20170201 20170207"
exit
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

结果:

Shell for、while循环的更多相关文章

  1. shell中的循环

    shell中的循环 for循环 类似于C语言的步长控制 例如: ;i<=;i++)); ); done 将1到10,依次乘以4,然后打印出来. 这里顺便提一下,shell里面表达式的计算,可以有 ...

  2. shell中for循环

    shell中for循环总结 最常用的就是遍历操作某一类文件,比如批量建索引. for i in `ls` do samtools faidx $i done 注意:for末尾不需要冒号(:),循环的代 ...

  3. shell中for循环总结

    关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1. for((i=1;i<=10;i++));d ...

  4. shell脚本学习-循环

    跟着RUNOOB网站的教程学习的笔记 for循环 与其他编程语言类似,shell支持for循环. for循环一般格式为: for var in item1 item2 ... itemN do com ...

  5. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  6. shell的for循环

    与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符 ...

  7. Shell中的循环语句实例

    1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do     echo number $x done 注:" ...

  8. shell编程之循环语句for / while / until

    shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...

  9. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

  10. Shell编程之循环语句与echo的用法

    Shell编程之循环语句与echo的用法 目录 Shell编程之循环语句与echo的用法 一.echo用法 1. echo常用选项 2. 常用的转义字符 3. 特殊符号%.#的用法 二.循环语句 1. ...

随机推荐

  1. C++ 调用webservice 出现 函数返回值为 3 (SOAP_TAG_MISMATCH) 的解决方案

    最近在用C++ gsoap做webservice服务时,函数返回值为SOAP_TAG_MISMATCH (==3)错误码,原因是我传入wsdl地址时连同后面的?wsdl都传入了,如下: http:// ...

  2. php accumulation rockmongo

    php -r 'echo substr(sprintf("%o",fileperms("./")),-4);'

  3. 用jq实现鼠标移入按钮背景渐变其他的背景效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. django--mysql设置

    mysql基本配置 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': 3306, 'USE ...

  5. 关于CSDN 2016博客之星评选活动的感触

    一.前言 想想去年的这个时候还接到CSDN邀请,参加了"CSDN 2015博客之星"的评选活动, CSDN2015博客之星评选之拉票环节 而今年却没有接到CSDN的邀请,内心有点小 ...

  6. 我的Android进阶之旅------>android如何将List请求参数列表转换为json格式

    本文同步发表在简书,链接:http://www.jianshu.com/p/395a4c8b05b9 前言 由于接收原来的老项目并进行维护,之前的http请求是使用Apache Jakarta Com ...

  7. python16_day06【类、RE模块、subprocess模块、xml模块、shelve模块】

    一.shelve模块 import shelve # 基于pickle模块, d = shelve.open('shelve_test') class Test(object): def __init ...

  8. Python(函数式编程)

    函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  9. ul,li设置inline-block缝隙

    去掉换行符和空白符 margin-left: -0.5em(缝隙大小不确定) ul字号设为0,li设置字号 (有些浏览器设置最小字体) js移除空白子节点

  10. jquery jsonp请求错误处理

    jQuery将ajax方法进行了封装,jsonp可以轻松实现跨域请求. $.ajax({type: 'GET', url: "<%= SysUtils::TASK_CENTER_URL ...