for循环语句 for-do-done

14 篇文章 0 订阅

1. 定义

关键字:遍历

2. 语法

语法一:

for var in list
do
	commands
done

语法二:

for var in list;do
	commands
done

语法三(C语言风格):

for ((i=0;i<10;i++))
do
	commands
done

注:取值列表有多种取值方式,比如:
  1)可以直接读取in后面的值,默认以空格分隔
  2)列表中的复杂值,可以使用 引号或转义符号"/"加以约束

3. 执行流程描述

在这里插入图片描述
各个被遍历的值之间用空格分开

4. 示例

4.1 读取in后面的值,默认以空格分隔

代码示例

#!/bin/bash

for var in a1 b1 c1 d1
do
	echo "this is $var"
done

#!/bin/bash

for var in a1 b1 c1 d1;do
	echo "this is $var"
done

执行结果
在这里插入图片描述

4.2 读取in后面值,使用 引号加以约束

代码示例

#!/bin/bash
for var in a1 a2 "c1 d1" e2 "hello world"
do
	echo "this is $var"
done

执行结果
在这里插入图片描述

4.3 读取in后面的值,特殊符号使用转义符"/"加以约束

代码示例

#!/bin/bash
for var in a1 b\'1 'c1 d1' e2 'hello world' it\'s a22
do
	echo "this is $var"
done

执行结果
在这里插入图片描述

4.4 从变量中取值

即提前定义列表变量

代码示例

#!/bin/bash
lst="a1 b1 c1 d1"
for var in $lst
do
	echo "this is $var"
done

执行结果
在这里插入图片描述

4.5 从命令中取值

代码示例

#!/bin/bash
for i in `cat ./test.txt`
do
	echo $i
done

执行结果
在这里插入图片描述
由上述结果可以看出,输出结构是以空格为默认分隔符的,那么如何自定义分隔符呢?

4.6 自定义shell分隔符

默认情况下,bash shell 会以空格、制表符、换行符作为分隔符。通过IFS来自定义为分隔符
指定单个字符做分隔符:
IFS=: # 以:冒号作为分隔符
指定多个字符做分隔符:
IFS='\n':;' #定义反斜杠n冒号分号双引号作为字段分隔符

注: $’\n’ 和’\n’ 的区别

IFS='\n' # 将字符 \ 和字符 n 作为IFS的换行符
IFS=$'\n' # 将真正的换行符作为字段分隔符

代码示例

#!/bin/bash
IFS=$'\n'
for i in `cat ./test.txt`
do
	echo $i
done

执行结果
在这里插入图片描述
由上面执行结果可以看出,目前是以换行符作为了分隔符

4.7 C语言风格的for

1) 示例一

代码示例

#!/bin/bash
for ((i=0;i<10;i++))
do
	echo "num is $i"
done

执行结果
在这里插入图片描述

示例二

多个变量,同时输出1-9的升序和降序
代码示例

#!/bin/bash
for ((a=1,b=9;a<10;a++,b--))
do
	echo "num is $a -- $b"
done

执行结果
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值