[转帖]Linux Shell编程 循环语法
https://zhuanlan.zhihu.com/
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
#从 1 加到100
s=0
for(( i=1;i<=100;i=i+1))
#定义循环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=0
for (( i=0;i<=$1;i=i+1 ))
#循环直到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 30 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 [条件判断式]
do
程序
done
示例:从 1 加到 100。

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

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

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

对于 until 循环来讲,只要条件判断式不成立,循环就会继续;一旦条件判断式成立,循环就会停止。所以我们判断变量i的值是否大于 100,一旦变量的值大于 100,循环就会停止。
[转帖]Linux Shell编程 循环语法的更多相关文章
- Linux Shell编程 循环语法
for循环 for 循环是固定循环,也就是在循环时已经知道需要进行几次循环.有时也把 for 循环称为计数循环.语法: for 变量 in 值1 值2 值3… do 程序 done 在这种语法中,fo ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- linux shell编程总结
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
- 一文学完Linux Shell编程,比书都好懂
一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...
- 前端学习 linux —— shell 编程
前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...
随机推荐
- CSS3学习笔记-选择器
在CSS中,选择器是一种指定一个或多个元素的方法.可以根据元素的类型.类.ID.属性等特征来选择元素.CSS3引入了很多新的选择 器,让我们可以更加灵活和精准地选择元素. 下面介绍一些常用的CSS3选 ...
- MIGO新增页签增强
1.文档说明 本方法是将新增字段,展示在MIGO的新增页签中,并保存到自建表. 新增页签的方法,和采购订单新增页签的方法原理基本一致,都是需要创建函数组,并实现相应方法和屏幕,并在增强中调用该函数组, ...
- flutter去除隐藏标题栏
使用 SystemChrome 类来控制系统 UI 元素的显示和隐藏 import 'package:flutter/material.dart'; import 'package:flutter/s ...
- 十问Huawei Cloud Toolkit:开发插件如何提升云上开发效能
本文分享自华为云社区<[云享问答]第2期 十问Huawei Cloud Toolkit:开发插件如何提升云上开发效能>,作者:华为云社区精选. 众所周知,桌面集成开发环境(IDE)已经融入 ...
- AI开发效率低,你可以试试华为NAIE AutoML
摘要:为解决AI工程师在开发AI应用场景所遇到的问题,NAIE平台落地AutoML框架(工具)来辅助大家更高效.更迅速解决AI开发问题. 你是不是还在为掌握的AI算法少而烦恼? 你是不是还在为选择某个 ...
- SparkSQL高并发:读取存储数据库
摘要:实践解析如何利用SarkSQL高并发进行读取数据库和存储数据到数据库. 本文分享自华为云社区<SarkSQL高并发读取数据库和存储数据到数据库>,作者:Copy工程师 . 1. Sp ...
- 如何上传苹果ipa安装包?
如何上传苹果ipa安装包? 引言 在将应用程序上架到苹果应用商店之前,开发者需要学习如何上传ipa安装包.本文将介绍使用appuploader工具将ipa安装包上传到苹果应用商店的详细步骤,并提供 ...
- 【辅助工具】Apifox
注意事项 需要刷新权限 请求方式需要对应
- maven 强制使用本地仓库
pom 文件添加如下内容: <repositories> <repository> <id>alimaven</id> <name>aliy ...
- LeetCode 第 193 场周赛 解题报告
5436. 一维数组的动态和 时间复杂度:O(n) 知识点:前缀和 根据题目给出的公式 runningSum[i] = sum(nums[0]-nums[i]),可得: 当 i > 0 时,ru ...