第七章 Bash循环

shell可以重复地执行特定的指令,直到特定的条件被满足为止。这重复执行的一组命令就叫做循环。
每一个循环都具有以下特点:

  • 首先,循环条件中使用的变量必须是已初始化的,然后在循环中开始执行。
  • 在每一次循环开始时进行一次测试。
  • 重复的执行一个代码块

7.1 for循环

7.1.1  for循环语法

for循环的基本语法:

for VAR in item1 item2 ... item
do
  command1
  command2
  ...
  ...
  commandN
done

for循环变量的内容的语法:

for VAR in $fileNames
do
  command1
  command2
  ...
  ...
  commandN
done

for循环命令替换的语法:

for VAR in $(Linux-command-name)		#或者使用: for VAR in `Linux-command-name`
do
  command1
  command2
  ...
  ...
  commandN
done

for循环还有三项表达式语法,这种语法与C语言中常见for循环使用方法相同。
for循环三项表达式语法:

for  (( EXP1; EXP2; EXP3 ))
do
  command1
  command2
  ...
  ...
  commandN
done

上述语法以三项参数循环控制表达式为特征,它由一个初始化式(EXP1)、循环测试或条件(EXP2)和一个计算表达式(EXP3)组成。
在for循环中,每次指定列表中的(iterm1…itermN)新值被赋给变量VAR后,for循环都会执行一次,它将重复运行‘do’和‘done’之间的所有语句,直到条件不满足时为止。这些列表或数值通常是:

  • 字符串
  • 数字
  • 命令行
  • 参数
  • 文件名
  • Linux命令的输出

我们来看一个简单的for循环的脚本:

#!/bin/bash

for i in 1 2 3 # 从1~3循环
do
	echo "The for loop is run $i times"
done

接下来看一个字符串的循环示例:

#! /bin/bash

for linux in Debin Redhat Suse Fedora
do
	echo "The OS is : $linux"
done

使用变量内容的for循环示例:

#! /bin/bash

filenames="/etc/yp.conf /etc/nsswitch.sh /etc/auto.master /etc/resolv.conf" # 文件名以空格分隔
for file in $filenames
do
	[ -f $file ] && echo "The file $file was found" || echo "*** Error : The file $file was missing. ***"
done

使用命令替换的for循环实例:

#! /bin/bash

echo "Printing file list in /tmp/directory:"
for file in 'ls /tmp/*'
do
	echo $file
done

7.1.2 嵌套for循环语句

嵌套循环的意思即是在循环中循环。下面我们看一个简单的嵌套for循环的实例:

#! /bin/bash

for (( i = 0; i < 3; i++ ))
do
	for(( j = 0; j < 5; j++ ))
  do
    echo -n "* "
  done
	echo ""
done
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yrui.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值