for循环

for 循环是固定循环,也就是在循环时已经知道需要进行几次循环。有时也把 for 循环称为计数循环。
语法:

for 变量 in 值1 值2 值3…
do
程序
done

在这种语法中,for 循环的次数取决于 in 后面值的个数(以空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。也就是说,假设 in 后面有三个值,for 会循环三次,第一次循环会把值 1 赋予变量,第二次循环会把值 2 赋予变量,以此类推。

示例:打印时间。

[root@localhost ~]# vi sh/for.sh
#!/bin/bash 打印时间
for time in morning noon afternoon evening
do
echo "This time is $time!"
done

in 值后面有 4 个字符串,所以这个 for 会循环 4 次。每次循环会依次把字符串赋予变量 time,所以这个脚本会循环 4 次,并依次输出"morning noon afternoon evening"这 4 个字符串。

for ((初始值;循环控制条件;变量变化))
do
程序
done
  • 初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1。
  • 循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续。
  • 变量变化:每次循环之后,变量该如何变化,如 i=i+1,代表每次循环之后,变量的值都加 1。

示例:从 1 加到 100

#!/bin/bash
#从 加到100
s=
for(( i=;i<=;i=i+))
#定义循环100次
do
s=$(($s+$i))
#每次循环给变量s赋值
done
echo "The sum of 1+2+..+100 is : $s"
#输出从1加到100的和

用函数实现从 1 加到 mun的和:

[root@localhost ~]# vi sh/function.sh
#!/bin/bash
#接收用户输入的数字,然后从1加到这个数字
function sum () {
#定义函数sum
s=
for (( i=;i<=$;i=i+ ))
#循环直到i大于$1为止。$1是函数sum的第一个参数
#在函数中也可以使用位置参数变量,不过这里的$1指的是函数的第一个参数
do
s=$(( $i+$s ))
done
echo "The sum of 1+2+3...+$1 is : $s" #输出从1加到$1的和
}
read -p "Please input a number: " -t num #接收用户输入的数字,并把值赋予变量num
y=$(echo $num 丨 sed 's/[0-9]//g') #把变量num的值替换为空,并赋予变量y
if [ -z "$y"]
#判断变量y是否为空,以确定变量num中是否为数字
then
sum $num
#调用sum函数,并把变量num的值作为第一个参数传递给sum函数
else
echo "Error!! Please input a number!"
#如果变量rmm的值不是数字,则输出报错信息
fi

函数的位置参数变量:$0 代表函数名,$1 代表函数的第 1 参数,$2 代表函数的第 2 个参数,以此类推。

while循环

while 循环和 unti 循环都是条件循环,主要是指循环可以一直进行,直到用户设定的条件达成为止。
while [条件判断式]
do
程序
done

示例:从 1 加到 100。

#!/bin/bash
#从1加到100
i=
s=
#给变量i和s赋值
while [$i -le ]
#如果变量的值小于等于100,则执行循环
do
s=$(($s+$i))
i=$(($i+))
done
echo "The sum is: $s"

对于 while 循环来讲,只要条件判断式成立,循环就会执行。所以,只要i的值小于等于 100,循环就会继续。每次循环给变量 s 加入变量 i 的值,再给变量加 1,直到变量 i 的值大于 100,循环才会停止。然后输出变量 s 的值,也就是从 1 加到 100 的和。

until循环

 unti 循环,和 while 循环相反,只要条件判断式不成立,则进行循环,并执行循环程序;一旦条件判断式成立,则中止循环。语法如下:
until [条件判断式]
do
程序
done

示例:从1加到100。

[root@localhost ~]#vi sh/until.sh
#!/bin/bash
#从1加到100
i=
s=
#给变量i和s赋值
until [$i-gt ]
#循环,直到变量i的值大于100,就停止循环
do
s=$(($s+$i))
i=$(($i+))
done
echo "The sum is: $s"

对于 until 循环来讲,只要条件判断式不成立,循环就会继续;一旦条件判断式成立,循环就会停止。所以我们判断变量i的值是否大于 100,一旦变量的值大于 100,循环就会停止。

Linux Shell编程 循环语法的更多相关文章

  1. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  2. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  3. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  4. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  5. 一文学完Linux Shell编程,比书都好懂

    一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...

  6. 前端学习 linux —— shell 编程

    前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...

  7. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  8. Linux Shell编程参考大全

    本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...

  9. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

随机推荐

  1. Call to a member function cellExists() on a non-object /phpexcel/Classes/PHPExcel/Calculation.php on line 3241

    PHP Fatal error: Call to a member function cellExists() on a non-object in /home/edata/eframework/we ...

  2. linux rz xshell

    这个命令写好好几次 就是没有记住 放到这里 每次用的时候查一遍 慢慢就记住了~~~ sudo yum install lrzsz -y

  3. Android开发学习秘籍笔记(十九)

    吼.花了2天最后做出了一个类似于蓝牙串口助手功能的小程序,事实上也是实习公司的要求---有一个蓝牙无线扫描枪,要求终端能够通过蓝牙连接到该设备,而且蓝牙无线扫描枪扫描二维码或者条形码的时候能够将二维码 ...

  4. 一个改动配置文件的linux shell script

    不久以前,以前搜到一篇博客是读取配置文件的,http://www.cnblogs.com/bo083/archive/2012/11/19/2777076.html,用到如今,感觉十分方便.感谢作者. ...

  5. 1、easyUI-创建 CRUD普通dataGrid(表格)

    在实现功能之前,我们要做以下几个准备: 分以下几个步骤:开发工具,easyUI包,目录结构,创建数据库,创建相应的页面视图,后台代码编写,优化: 第一步:开发工具 我的开发工具是Hbuild,开发语言 ...

  6. tomcat ; nginx ;mysql

    [说明]上午在服务器上部署了自己的web目录(tomcat虚拟目录),下午安装并了解了nginx(出了点问题,后来解决了),晚上尝试nginx和tomcat配置(一头雾水) 一:今日完成 1)配置to ...

  7. 启发式搜索技术A*

    开篇 这篇文章介绍找最短路径的一种算法,它的字我比较喜欢:启发式搜索. 对于入门的好文章不多,而这篇文章就是为初学者而写的,很适合入门的一篇.文章定位:非专业性A*文章,很适合入门. 有图有真相,先给 ...

  8. Sharepoint server 2016自定义作业不能部署

    最近帮客户部署SharePoint server 2016生产环境,自定义作业总是不能部署上,原来我在部署过程中MinRole选的是Web前端服务器:经过几天的测试研究,发现要有single serv ...

  9. #1560 : H国的身份证号码II(dp+矩阵快速幂)

    #1560 : H国的身份证号码II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位的正整数(首位不能是0).此外,由于防伪需要,一个N位正整 ...

  10. vip视频网站爬虫

    vip视频网站爬虫 电影网站:http://www.08ge.com/play/?make=dianying&id=fqvlYhH5QHb3Sh.html 找到<iframe>的i ...