Linux命令之for - Bash中的For循环

Linux shell 脚本 - for循环 例如,要访问“mango”元素,请将 @ 运算符替换为元素在数组中的位置(第一个元素从 0 开始,因此在这种情况下,“mango”将用 2 表示)。注意:有时,需要使用 ./脚本文件.sh 的方式来执行脚本,而不能使用 sh 脚本文件.sh 的方式,否则会报语法错误。注意:此时,需要使用 ./脚本文件.sh 的方式来执行脚本,而不能使用 sh 脚本文件.sh 的方式,否则会报语法错误。在 Bash 脚本中,循环扮演着几乎相同的角色,并用于自动执行重复性任务,就像在编程语言中一样。 阅读详情

学技术怎么能不会用服务器,阿里云服务器现8折优惠,还有更多优惠券限量发放
https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=7czske1k&utm_source=7czske1k

本文链接:http://codingstandards.iteye.com/blog/778999  (转载请注明出处)

 

用途说明

在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。

常用格式

格式一

for 变量

do

    语句

done

格式二

for 变量 in 列表

do

    语句

done

格式三

for ((变量=初始值; 条件判断; 变量变化))

do

    语句

done

使用示例

示例一

Bash代码   收藏代码
  1. for s in ac apropos at arp  
  2. do  
  3.      echo $s  
  4. done   

 

 

[root@jfht ~]# for s in ac apropos at arp
> do
>     echo $s
> done
ac
apropos
at
arp
[root@jfht ~]#

示例二

Bash代码   收藏代码
  1. for f in *  
  2. do  
  3.     echo $f  
  4. done  
 

 

[root@jfht ~]# for f in *
> do
>     echo $f
> done
anaconda-ks.cfg
bak181
hlx
install.log
install.log.syslog
job.sh
job.txt
mbox
mini
setup
temp
vsftpd-2.0.5-16.el5.i386.rpm
vsftpd.conf
work191
[root@jfht ~]#

 

示例三

Bash代码   收藏代码
  1. ls >ls.txt  
  2. for s in $(cat ls.txt)  
  3. do  
  4.     echo $s  
  5. done  
 

[root@jfht ~]# ls >ls.txt

[root@jfht ~]# for s in $(cat ls.txt)
>
> do
>
>     echo $s
>
> done
anaconda-ks.cfg
bak181
hlx
install.log
install.log.syslog
job.sh
job.txt
ls.txt
mbox
mini
setup
temp
vsftpd-2.0.5-16.el5.i386.rpm
vsftpd.conf
work191
[root@jfht ~]#

 

示例四

Bash代码   收藏代码
  1. print_args()  
  2. {  
  3.     for arg in "$@"  
  4.     do  
  5.         echo $arg  
  6.     done  
  7. }  
  8. print_args 1 2 3 4  
  9. print_args "this is a test"  
  10. <span style="color: #000000;">print_args this is a test</span>  

[root@smsgw root]# print_args()
> {
>     for arg in "$@"
>     do
>         echo $arg
>     done
> }
[root@smsgw root]# print_args 1 2 3 4
1
2
3
4
[root@smsgw root]# print_args "this is a test"
this is a test
[root@smsgw root]# print_args this is a test
this
is
a
test

示例五

Bash代码   收藏代码
  1. for ((i=0; i<10; ++i))  
  2. do  
  3.     echo $i  
  4. done  

 

[root@smsgw root]# for ((i=0; i<10; ++i))
> do
>     echo $i
> done
0
1
2
3
4
5
6
7
8
9

 

示例六 列表为数组

Bash代码   收藏代码
  1. AREAS=(1901 1902 1903 1904 1905 1906 1907   1908 1909 1910 1911 1912 1913)  
  2. NAMES=(南京 无锡 徐州 常州 苏州 南通 连云港 淮安 盐城 扬州 镇江 泰州 宿迁)  
  3. NUM_OF_AREAS=13  
  4. area_name_of()  
  5. {  
  6.     for ((I=0; I<$NUM_OF_AREAS; ++I))  
  7.     do  
  8.         if [ "$1" == "${AREAS[I]}" ]; then  
  9.             echo "${NAMES[I]}"  
  10.         fi  
  11.     done  
  12. }  
  13. echo $(area_name_of 1903)  
  14. for AREA in ${AREAS[*]};  
  15. do  
  16.     echo $AREA $(area_name_of $AREA)  
  17. done  

 

[root@smsgw root]# AREAS=(1901 1902 1903 1904 1905 1906 1907   1908 1909 1910 1911 1912 1913)
[root@smsgw root]# NAMES=(南京 无锡 徐州 常州 苏州 南通 连云港 淮安 盐城 扬州 镇江 泰州 宿迁)
[root@smsgw root]# NUM_OF_AREAS=13
[root@smsgw root]# area_name_of()
> {
>     for ((I=0; I<$NUM_OF_AREAS; ++I))
>     do
>         if [ "$1" == "${AREAS[I]}" ]; then
>             echo "${NAMES[I]}"
>         fi
>     done
> }
[root@smsgw root]# echo $(area_name_of 1903)
徐州
[root@smsgw root]# for AREA in ${AREAS[*]};
> do
>     echo $AREA $(area_name_of $AREA)
> done
1901 南京
1902 无锡
1903 徐州
1904 常州
1905 苏州
1906 南通
1907 连云港
1908 淮安
1909 盐城
1910 扬州
1911 镇江
1912 泰州
1913 宿迁
[root@smsgw root]#

 

示例七 bash version 3.0+

Java代码   收藏代码
  1. bash --version  
  2. for i in {1..5}  
  3. do  
  4.    echo "Welcome $i times"  
  5. done   

 

[root@smsgw root]# bash --version
GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.
[root@smsgw root]# for i in {1..5}
> do
>    echo "Welcome $i times"
> done
Welcome {1..5} times
[root@smsgw root]#

换个较高版本的Linux。

[root@jfht ~]# bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
[root@jfht ~]# for i in {1..5}
> do
>    echo "Welcome $i times"
> done
Welcome 1 times
Welcome 2 times
Welcome 3 times
Welcome 4 times
Welcome 5 times
[root@jfht ~]#

 

示例八 Bash v4.0+

Bash代码   收藏代码
  1. echo "Bash version ${BASH_VERSION}..."  
  2. for i in {0..10..2}  
  3.   do  
  4.      echo "Welcome $i times"  
  5.  done  

 

[root@smsgw root]# echo "Bash version ${BASH_VERSION}..."
Bash version 2.05b.0(1)-release...
[root@smsgw root]# for i in {0..10..2}
>   do
>      echo "Welcome $i times"
>  done
Welcome {0..10..2} times
[root@smsgw root]#

换个较高版本的Linux。

[root@jfht ~]# echo "Bash version ${BASH_VERSION}..."
Bash version 3.2.25(1)-release...
[root@jfht ~]# for i in {0..10..2}
>   do
>      echo "Welcome $i times"
>  done
Welcome {0..10..2} times
[root@jfht ~]#

传说Bash4.0可以支持这种语法。

Bash version 4.0.33(0)-release...
Welcome 0 times
Welcome 2 times
Welcome 4 times
Welcome 6 times
Welcome 8 times
Welcome 10 times

 

问题思考

1. 怎么用for实现死循环(无限循环)?

2. 比较几种写法的不同:(1) for arg in $* (2) for arg in $@ (3) for arg in "$*" (4) for arg in "$@"

3. 怎么跳出for循环?

4. for s; do echo $s; done  这个写法的执行结果是什么?

相关资料

【1】小蜗牛技术之家 BASH for 循环小结

【2】相当不错的介绍for语句的英文资料 Bash For Loop Examples

【3】Bash新手指南 第9章 重复性任务

【4】Keep IT Simple and Stupid 在Bash的命令行使用For循环


第七章 Bash循环 帮老师写的一个课件而已。 阅读详情

相关推荐

Linux Bash 中的循环 for, while and until

c<=5;$i<=9;i++));do echo $i;donedodonedodone单行实例donedo echo $i;

1057

bash for 循环的常用方法

1、罗列式 [code] for VARIABLE in 1 2 3 4 5 … N do command1 command2 commandN done [/code] [code] #!/bin/bash for i in 1 2 3 4 5 do echo “Welcome $i times” done [/code] 2、使用rang [code] #!/bin/bash for i in {1…5} do echo “Welcome $i times” done [/code] 3、使用rang

linux_tcpdump的博客 3265

20、Bash 命令行编程中的扩展与循环

本文详细介绍了 Bash 命令行编程中的扩展功能和循环结构。涵盖了波浪号扩展、路径名扩展、命令替换和算术扩展四种主要扩展类型,并深入解析了 Bash 中的 for 循环、while 循环和 until 循环的使用方法和适用场景。通过丰富的实验示例,展示了如何利用这些功能提高 Linux 系统上的命令行操作效率。文章旨在帮助用户掌握 Bash 编程基础,实现高效自动化任务处理。

i0j1k2l3m的博客 104

bash for循环_Bash 中的 For 循环

循环是编程语言的基本概念之一。当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便。在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用。在 Bash 脚本中有3个基本的循环结构,for 循环, while 循环,until 循环。在本教程中,我们将介绍 Bash 中 for 循环的基础知识以及用于改变循环流的 break 和 continue 语句。标准 ...

weixin_39997443的博客 2767

LabVIEW状态机实战:用STM32+DHT11搭建温湿度监测系统(附完整VI源码)

本文详细介绍了如何利用LabVIEW状态机模式与STM32微控制器、DHT11温湿度传感器构建温湿度监测系统。通过硬件选型、状态机设计、LabVIEW程序实现及系统优化等环节,提供了一套完整的解决方案,并附有VI源码,助力开发者快速实现嵌入式温湿度监测应用。

weixin_42549723的博客 524

WorkBench3.2 + VxWorks6.8安装教程

按照FTP连接主机和目标机,将整个VxWorks6.8的安装分为两个部分,一是在主机(win10系统,可以使用虚拟机或者实体机,推荐使用虚拟机)上安装workbench3.2,进行bootrom与VxWroks映像文件的生成,二是在虚拟机上安装VxWorks系统 19.10.10 首先很高兴文章能帮到大家,但由于本人已不做该方向良久,私信和评论的很多问题现在已经无法解答,如果大家有什么问题欢迎...

Alive的博客 3万+

linux for 死循环,Linux命令之for - Bash中的For循环

用途说明在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。常用格式格式一for 变量do语句done格式二for 变量 in 列表do语句done格式三for ((变量=初始值; 条件判断; 变量变化))do语句done使用示例示例一Bash代码 forsinacaproposatarpdoecho$sdone[root@j...

weixin_36054213的博客 1456

Latex | IEEE双栏排版中长公式的排版

IEEE双栏排版中,有时候公式过于长了,过宽,导致单栏排版不下。

qq_43466146的博客 1万+

我使用过的Linux命令之for - Bash中的For循环

本文链接:http://codingstandards.iteye.com/blog/778999  (转载请注明出处)   用途说明 在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。 常用格式 格式一 for 变量 do     语句 done 格式二 for 变量 in 列表 do     语句 done

多一份坚持,多一份收获 3310

嵌入式设备系统日志记录及调试技巧_嵌入式日志系统(1),如何成为杰出的程序员

这里面我使用的芯片为哈弗体系,全局常量存储编译器默认分配在flash,需要注意如果使用片内flash时,注意存储调试等级的flash块不要与代码区重合,要不然修改调试等级擦除flash块同时PC指针指向当前块的代码区,会导致仪器死机;这个也是之前用的比较多的,以上代码是模仿linux 内核的写法,可以比较好的做到日志信息分层,编译时相加对应的编译开关即可。但有个弊端就是,切换debug等级时,需要重新编译且需更新固件,而嵌入式设备出现异常后更新固件往往复位后,故障有时很难复现,调试起来比较浪费时间。

2401_84240431的博客 1296

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

Time_1023的博客 1874

linux命令行使用for循环,小弟我使用过的Linux命令之for - Bash中的For循环

我使用过的Linux命令之for - Bash中的For循环我使用过的Linux命令之for - Bash中的For循环本文链接:http://codingstandards.iteye.com/blog/778999(转载请注明出处)用途说明在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。常用格式格式一for 变量do语句done格式二...

weixin_30131185的博客 421

突破Cloudflare 5秒盾!Python爬虫+GPT分析JS混淆实战(附完整代码)

这篇文章的核心观点其实不是“怎么过CF”,而是如何把LLM嵌入逆向工程的工作流。AI不会取代逆向工程师,但它正在重新定义逆向工程师的工作方式。过去我们80%的时间花在读懂混淆代码上,现在这部分可以外包给GPT,我们把精力集中在架构判断、异常处理和系统设计这些真正需要人类直觉的地方。技术会变,CF的防护会升级,GPT的能力也会迭代。但这种“人机协作拆解复杂问题”的方法论,比任何具体的绕过技巧都更有长期价值。参考资料Cloudflare Bot Management官方文档。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 542

我使用过的Linux命令之 for - Bash中的For循环

我使用过的Linux命令之for - Bash中的For循环 博客分类: Linux命令 BashLinuxRedHat编程F#  我使用过的Linux命令之for - Bash中的For循环     用途说明 在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。 常用格式 格式一 for 变量 do

bincavin的专栏 735

大模型_WIN10使用hyper-v安装Ubuntu24.04虚拟机_配置独立静态IP地址_连接外网_并与内网其他机器互通_通过容器安装Dify_超详细安装过程002--人工智能工作笔记0247

本文详细描述了在Hyper-V环境中配置网络、安装Ubuntu虚拟机、设置IP地址、安装Docker以及部署Dify应用的过程。首先,通过Hyper-V管理器创建外部虚拟交换机(ExternalSwitch),并配置本机、虚拟交换机和Ubuntu虚拟机的IP地址,确保网络互通。接着,在Ubuntu虚拟机中安装Open-VM-Tools和Docker,并配置Docker的国内镜像源。最后,通过Git克隆Dify源码,使用Docker Compose启动Dify应用,完成部署。整个过程涵盖了网络配置、虚拟机管理

添柴程序猿的专栏 1752

大数据领域数据采集的人工智能辅助技术

在大数据时代,“数据是石油”的隐喻早已深入人心,但采集高质量数据的过程却像“在大海里捞针”——数据源分散如繁星、格式杂乱如碎片、质量参差不齐如泥沙,传统采集方法(写死的脚本、固定的ETL流程)早已力不从心。这篇文章将带你走进AI辅助数据采集的世界:我们会用“智能捕鱼船”的比喻拆解AI如何解决传统采集的痛点,深入解析“数据源自动发现”“自适应数据解析”“实时质量管控”等核心技术的原理,用代码示例还原AI采集的真实流程,最后探讨多模态采集、联邦学习等未来趋势。

小程序开发 2357

linux中for循环数值处理,我使用过的Linux命令之for - Bash中的For循环

用途说明在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。常用格式格式一for 变量do语句done格式二for 变量 in 列表do语句done格式三for ((变量=初始值; 条件判断; 变量变化))do语句done使用示例示例一Bash代码 forsinacaproposatarpdoecho$sdone[root@j...

weixin_39619451的博客 399

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux bash shell的循环命令for、while和until

bash shell的循环命令for、while和until命令说明

打工人的学习记录! 1202

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

bash循环

bash中有for、while、until三种循环结构;for循环次数一般是固定的,while和until的循环次数可以是固定也可以是不固定的。 1、for循环: for循环次数是固定的 1.1、语法结构: (1)、 for 变量名 [ in 取值列表] do command1; command2; ... done or 可以写到一行: for 变量名 [ in 取值列表 ] ;...

老赵的博客 1098

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Bash loop脚本编程

在Linux / UNIX操作系统下,如何使用bash for loop重复执行某些任务? for file in "*.list"; do if [ -e $file ]; then cat $file | grep ^Hostname[0-9]; fi done 示例正则表达式 例子 说明 [abc] 匹配 “a”、“b”、“c” 之一 [a-z] 匹配从 “a” 到 “z” 的任何一个小写字符 [A-Z] 匹配从 “A” 到 “Z” 的任何一个...

dangdanding的专栏 814

Bash 脚本

什么是 Bash 简介 Bash(GNU Bourne-Again Shell)是一个为 GNU 计划编写的 Unix shell,它是许多 Linux 平台默认使用的 shell。 shell 是一个命令解释器,是介于操作系统内核与用户之间的一个绝缘层。准确地说,它也是能力很强的计算机语言,被称为解释性语言或脚本语言。它可以通过将系统调用、公共程序、工具和编译过的二进制程序”粘合“在一起来建立应用,这是大多数脚本语言的共同特征,所以有时候脚本语言又叫做“胶水语言”。 事实上,所有的 UNIX 命令和工具再

tangsiqi130的博客 1万+

bash 判断 os 版本_Linux 之 bash 编程

刚刚接触Linux的时候可能会混淆一个概念:shell与bash,这两者之间的关系也都是模模糊糊的,使用Windows系统的人可能对shell没啥感觉,因为只需要点点鼠标,计算机就能安装我们的需求进行相关的操作,那么为什么计算机就能设别我们的操作呢,人机有别,人的语言,机器怎么会懂呢,这时就需要一个翻译,将语言动作翻译给机器 ,shell就是充当人与计算机之间的翻译官。 在linux中图形界面不...

weixin_40007804的博客 190

中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国

使用循环和查找命令批量自动对多个文件进行一系列的操作。-- Seth Kenlon(作者)人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能。如果你希望批量的对文件执行一些指令,构造一个可以重复运行在那些文件上的命令就是一种方法。在编程术语中,这被称作执行控制,for 循环就是其中最常见的一种。for 循环可以详细描述你希望计算机对你指定的每个数据对象(比如说文件)所进行的操作。一般的循...

weixin_34312809的博客 388
上一篇: 函数getopt(),及其参数optind
下一篇: linux笔记
AstrayLinux
博客等级 码龄15年 55粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值