linux中的嵌套循环

嵌套循环(内循环):一条循环语句可以在循环中使用任何类型的命令,包括其他循环命令

示例1:

#!/bin/bash

for (( a = 1; a <= 3; a++ ))

do

echo "Starting loop $a"

for (( b = 1; b <= 3; b++ ))

do

echo "Inside loop $b"

done

done

[[email protected] ~]# ./test14.sh

Starting loop 1

Inside loop 1

Inside loop 2

Inside loop 3

Starting loop 2

Inside loop 1

Inside loop 2

Inside loop 3

Starting loop 3

Inside loop 1

Inside loop 2

Inside loop 3

示例2:

#!/bin/bash

var1=3

while [ $var1 -ge 0 ]

do

echo "Outer loop:$var1"

for (( var2 = 1; $var2 < 3; var2++ ))

do

var3=$[ $var1 * $var2 ]

echo "Inner loop:$var1 * $var2 = $var3"

done

var1=$[ $var1 -1 ]

done

[[email protected] ~]# ./test15.sh

Outer loop:3

Inner loop:3 * 1 = 3

Inner loop:3 * 2 = 6

Outer loop:2

Inner loop:2 * 1 = 2

Inner loop:2 * 2 = 4

Outer loop:1

Inner loop:1 * 1 = 1

Inner loop:1 * 2 = 2

Outer loop:0

Inner loop:0 * 1 = 0

Inner loop:0 * 2 = 0

示例3:

#!/bin/bash

var1=3

until [ $var1 -eq 0 ]

do

echo"Outer loop:$var1"

var2=1

while [ $var2 -lt 5 ]

do

var3=`echo "scale=4; $var1 / $var2" | bc`

echo "Inner loop:$var1 / $var2 = $var3"

var2=$[ $var2 + 1 ]

done

var1=$[ $var1 -1 ]

done

[[email protected] ~]# ./test16.sh

./test16.sh: line 5: echoOuter loop:3: command not found

Inner loop:3 / 1 = 3.0000

Inner loop:3 / 2 = 1.5000

Inner loop:3 / 3 = 1.0000

Inner loop:3 / 4 = .7500

./test16.sh: line 5: echoOuter loop:2: command not found

Inner loop:2 / 1 = 2.0000

Inner loop:2 / 2 = 1.0000

Inner loop:2 / 3 = .6666

Inner loop:2 / 4 = .5000

./test16.sh: line 5: echoOuter loop:1: command not found

Inner loop:1 / 1 = 1.0000

Inner loop:1 / 2 = .5000

Inner loop:1 / 3 = .3333

Inner loop:1 / 4 = .2500

时间: 2024-11-10 13:01:45

linux中的嵌套循环的相关文章

linux中常用时间和字符串之间相互转化

在Linux中经常会遇到时间和字符串相互转化的情形,有两个函数专门对应相应的转化. 1.时间转字符串函数strftime 函数原型:size_t strftime(char *s,size_t maxsize,char *format,conststruct tm *timeptr) strftime函数对timeptr指向的tm结构所代表的时间和日期进行格式编排,其结果放在字符串s中.该字符串的长度被设置为(最少)maxsize个字符.格式字符串format用来对写入字符串的字符进行控制,它包

详解 linux中的grub

grub是什么: grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后, 内核会根据grub配置文件中的配置,找到根分区所使用的文件系统对应的驱动,通过根分区文件系统 对应的驱动,挂载根分区,从而达到启动操作系统的目的. 在了解grub以前,请先大体上了解一下centos5/6的启动过程,然后再理解grub就更容易了, 还记的我们以前总结过的centos5系统启动流程吗,如下图,此处我们重点讨论下图红框中的步骤. centos5/6中使用grub作为bootl

Linux中的crontab命令用法

Crontab 在linux中,crontab的用来设置定期执行指定的命令,我们可以用它来指定一些需要重复的事情,Linux系统的用户只需将想要定期要执行的命令序列加到crontab文件中,操作系统即会按用户配置的时间执行这些命令序列.向crontab文件里添加指令之前,需要检查下crontab服务是否已启动和是否开机自动启动: [查看状态] Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 可以使用service crond status进行查看状态,下图是我在ce

centos linux中怎么查看和修改计算机名/etc/sysconfig/network

centos linux中怎么查看和修改计算机名 查看计算机名:在终端输入hostname 修改的话 hostname +计算机名(重启后失效)要永久修改的话要修改配置文件/etc/sysconfig/network修改hostname=你要改的名字

Linux中的select,poll,epoll模型

Linux中的 select,poll,epoll 都是IO多路复用的机制. select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作.select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一.select的一个缺点在于单个进程能够监视的文件描

linux中vim编辑器各种常用命令及用法

linux中vim编辑器的常用命令以及用法(注意严格区分大小写以及中英文): vim编辑器有三种模式,分别是:编辑模式,输入模式以及末行模式. 模式转换: 编辑模式>>>输入模式: i:在光标所在字符前面,转为输入模式(即转完后在光标所在字符前输入):                      I:在光标所在行的行首,转为输入模式(即转完后在行首输入,不包括行首空                         白) a:在光标所在字符后,转为输入模式(即转完后在光标所在字符后面输入):

Linux中添加用户、删除用户时新手可能遇到的问题

Linux中添加用户.删除用户时新手可能遇到的问题  1.创建新用户后切换到新用户:No directory, logging in with HOME=/     添加用户     #sudo useradd -m -s /bin/bash -g group loginname     -m 创建home目录 (不加这个要手动添加目录,不然会出现No directory,Logging in with HOME=/ )     -s /bin/bash 使用bash( 默认为 /bin/sh

理解Linux中的load Averges

一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing).也有简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟.5分钟.15分钟) 内平均 Load . 我们可以通过系统命令"w"查看当前load average情况 [[email p

Linux中删除文件,磁盘空间未释放问题追踪

在客户使用我们产品后,发现一个问题:在删除了文件后,磁盘空间却没有释放.是有进程在打开这个文件,还是其他情况?我们一起来看看一下两个场景 一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的