Linux Shell编程 循环语法

for循环

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

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

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

示例:打印时间。

[[email protected] ~]# 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的和:

[[email protected] ~]# 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 循环和 unti 循环都是条件循环,主要是指循环可以一直进行,直到用户设定的条件达成为止。

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循环

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

until [条件判断式]
do
程序
done

示例:从1加到100。

[[email protected] ~]#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,循环就会停止。

原文地址:https://www.cnblogs.com/lizhouwei/p/10048607.html

时间: 2024-07-30 09:14:32

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

Linux Shell 编程实战技巧

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务.这使得 Linux Shell 开发技能成为开发人员的一项重要的.有竞争力的技能.本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧. 避免定时任务脚本的常见问题 很多脚本在实际使用的时候往往是以定时任务的方式运行,而非手工运行.但是实现同样功能的脚本在这两种运行方式下可能遇到的问题不尽相同. 以定时任务方式运行的脚本往往会遇

京峰Linux Shell编程从入门到精通

课程介绍:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. -------------------课程目录------------------- <Shell编程从入门到精通> ├1.linux下shell编程基础入门_(new).mp4├2.Shell编程之变量及LAMP导航菜单编写_(new).mp4├3.Shell编程之IF条件语句各种案例演练_(new).mp4├4.使用if条件语句编写MySQL备份脚本_(new).mp4

Linux Shell编程之二选择结构

Shell编程学习之二 一.bash的条件测试 测试方法或者说测试书写: test EXPR [ EXPR ] [[ EXPR ]] 例如:测试变量 User_Name 的之是否为root test $User_Name="root" [ $User_Name == "root" ] [[ $User_Name == "root" ] 根据比较时操作数的类型,测试类型分为: 测试类型 运算符 运算符所代表的意义 示例 整形测试 -gt -lt -

Linux Shell编程之五字符串的处理

shell编程之字符串处理 在 shell 中,由于是一种弱类型的语言,在没有事先申明变量类型的情况下,所有的变量都是字符串.所以对字符串的处理就显得相当重要了. 下面介绍常见的对字符串处理的操作. 一.字符串切片 ${string_var:offest:length},类似于数组元素的提取. # 这里的string_var是一个变量,offest 是字符串的开始偏移量,length是切去字符串的长度 var=dhcpd:x:177:177:DHCP server:/:/sbin/nologin

关于linux shell编程,alias rm=&#39;cp [email&#160;protected] ~/backup; rm [email&#160;protected]&#39;

书上的这个例子需要在ubuntu的低版本的系统才支持,现在基本上都不支持了,想实现也很简单自己写一个脚本先备份再删除. alias也只是做了一次替换alias rm='cp [email protected] ~/backup; rm [email protected]' rm text.txt被转换成了cp  [email protected] ~/backup; rm [email protected] text.txt即cp  ~/backup; rm  text.txt可以看到text.

linux之shell编程基本语法

Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell.Shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是在用linux的shell命令编程>.一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的. 原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6681562.html 微信:intsmaz

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

目录 再识变量 函数 条件语句 循环语句 1.再识变量 Shell 中有3种变量:用户变量.位置变量.环境变量 用户变量 用户变量就是用户在Shell编程过程中定义的变量,分为全局变量和局部变量.默认情况下,用户定义的变量为全局变量,如果要指定局部变量,需要使用local限定词 1)Shell 中的特殊符号: 特殊字符列表如下: - 主目录,相当与$HOME ` 命令替换,如 echo `pwd` # 脚本注释 $ 变量表达式符号 & 后台作业,将此符号置于命令末端则让命令与后台运行 * 字符串

(三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)

3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" echo '$name\"'+" ${name}" #原样输出 $name\"+ coding echo `date` #当前日期 3.1.2 printf命令 printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变

Linux Shell编程入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用.深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne