news 2026/5/25 17:08:00

Linux for循环之列表for循环详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux for循环之列表for循环详解

for循环是Linux shell 中最常用的结构。

for 循环有三种结构:

  • 一种结构是列表for循环
  • 第二种结构是不带列表for循环
  • 第三种结构是类C风格的for循环

本篇博文重点看列表for循环,列表for循环大的格式固定,在列表构成上分多种情景,如数字列表、字符串列表、命令列表、脚本传参列表等,下面一一来看。

列表for循环语句用于将一组命令执行已知的次数,语句基本格式如下

1

2

3

4

5

6

forvariablein(list)

do

command

command

...

done

ex1,列表for循环中list 列表为常数的情况

1

2

3

4

5

6

7

#!/bin/bash

#使用列表for循环显示5次欢迎操作

forvariablein1 2 3 4 5

do

echo"Hello, welcome $variable times "

done

1

2

3

4

5

6

7

[zhangqi@localhost shellscript]$ sh for_ex1.sh

Hello, welcome 1times

Hello, welcome 2times

Hello, welcome 3times

Hello, welcome 4times

Hello, welcome 5times

[zhangqi@localhost shellscript]$

ex2,列表为略写形式

1

2

3

4

5

6

7

#!/bin/bash

#使用列表for循环显示5次欢迎操作

forvariablein{1..5}

do

echo"Hello, welcome $variable times "

done

1

2

3

4

5

6

7

[zhangqi@localhost shellscript]$ sh for_ex2.sh

Hello, welcome 1times

Hello, welcome 2times

Hello, welcome 3times

Hello, welcome 4times

Hello, welcome 5times

[zhangqi@localhost shellscript]$

上面示例种,我们将1~5进行略写,使其可以正常的与示例1输出相同的结果

ex3,列表为简写形式

1

2

3

4

5

6

7

#!/bin/bash

#使用列表for循环显示5次欢迎操作

forvariablein$(seq1 5)

do

echo"Hello, welcome $variable times "

done

seq 命令是Linux预设的外部命令,一般用于一堆数字的简化写法,可以参考linux常用命令之seq。

执行后,结果同上面相同,就不重复贴出来了。

ex4,按步数跳跃方式实现列表

1

2

3

4

5

6

7

#!/bin/bash

#使用列表for循环显示5次欢迎操作

forvariablein{1..5..2}

do

echo"Hello, welcome $variable times "

done

运行下,看下结果

1

2

3

4

5

[zhangqi@localhost shellscript]$ sh for_ex4.sh

Hello, welcome 1times

Hello, welcome 3times

Hello, welcome 5times

[zhangqi@localhost shellscript]$

ex5,跳跃方式用seq表达

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[zhangqi@localhost shellscript]$catfor_ex5.sh

#!/bin/bash

#使用列表for循环显示5次欢迎操作

forvariablein$(seq1 2 5)

do

echo"Hello, welcome $variable times "

done

[zhangqi@localhost shellscript]$ sh for_ex5.sh

Hello, welcome 1times

Hello, welcome 3times

Hello, welcome 5times

[zhangqi@localhost shellscript]$

ex6,用字符串表示列表

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[zhangqi@localhost shellscript]$catfor_ex6.sh

#!/bin/bash

#使用列表for循环显示周一到周日对应的英文

fordayinMonday Tuesday Wednesday Thursday Friday Saturday Sunday

do

echo"$day"

done

[zhangqi@localhost shellscript]$ sh for_ex6.sh

Monday

Tuesday

Wednesday

Thursday

Friday

Saturday

Sunday

[zhangqi@localhost shellscript]$

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

[zhangqi@localhost shellscript]$catfor_ex7.sh

#!/bin/bash

#使用命令打印数组

forvariablein`ls/`

do

echo"Every directory is $variable "

done

[zhangqi@localhost shellscript]$ sh for_ex7.sh

Every directory is bin

Every directory is boot

Every directory is dev

Every directory is etc

Every directory is home

Every directory is lib

Every directory is lost+found

Every directory is media

Every directory is mnt

Every directory is opt

Every directory is proc

Every directory is root

Every directory is sbin

Every directory is selinux

Every directory is srv

Every directory is sys

Every directory is tmp

Every directory is usr

Every directory is var

[zhangqi@localhost shellscript]$

这里的命令格式可以使用 $( command) 或 `command`,效果相同,这里就不再做展示了。

ex8,通过脚本传参实现里列表

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[zhangqi@localhost shellscript]$catfor_ex8.sh

#!/bin/bash

echo"number of arguments is $#"

echo"What you input is :"

#使用命令打印数组

forargumentin"$*"

do

echo"$argument "

done

[zhangqi@localhost shellscript]$ sh for_ex8.sh 1 hello shell

number of arguments is 3

What you input is :

1 hello shell

[zhangqi@localhost shellscript]$

总结

以上为个人经验,希望能给大家一个参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 1:44:22

演唱会门票难抢?DamaiHelper智能抢票让你告别抢票焦虑

演唱会门票难抢?DamaiHelper智能抢票让你告别抢票焦虑 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 你是否经历过这样的场景:盯着屏幕倒计时,开票瞬间却因网…

作者头像 李华
网站建设 2026/5/23 1:43:47

终极指南:5个技巧快速掌握Pylance Python语言服务器

终极指南:5个技巧快速掌握Pylance Python语言服务器 【免费下载链接】pylance-release Documentation and issues for Pylance 项目地址: https://gitcode.com/gh_mirrors/py/pylance-release Pylance是微软开发的Python语言服务器扩展,专为Visua…

作者头像 李华
网站建设 2026/5/22 21:04:54

SEO全页面优化的具体步骤是什么_SEO全页面优化的未来发展趋势是什么

SEO全页面优化的具体步骤是什么 在当前竞争激烈的网络环境中,SEO全页面优化成为了提升网站流量和品牌知名度的关键策略。SEO全页面优化的具体步骤有哪些呢?本文将详细阐述。 进行全面的关键词研究。这是SEO全页面优化的基础步骤。你需要找到与你的业务…

作者头像 李华
网站建设 2026/5/23 1:43:51

Qwen3-14B WebUI可视化部署教程:10分钟搭建私有AI智能助手

Qwen3-14B WebUI可视化部署教程:10分钟搭建私有AI智能助手 1. 快速了解Qwen3-14B镜像 Qwen3-14B是通义千问推出的大语言模型,支持对话、推理、生成等多种智能场景。这个专为RTX 4090D 24GB显存优化的镜像,让你无需任何环境配置就能快速搭建…

作者头像 李华
网站建设 2026/5/23 1:43:46

VMware Unlocker:3分钟解锁VMware macOS支持的终极指南

VMware Unlocker:3分钟解锁VMware macOS支持的终极指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 你是否想在Windows或Linux电脑上体验macOS系统?VMware Unlocker正是你需要…

作者头像 李华
网站建设 2026/5/23 1:43:51

实战指南:基于快马生成生产级可用的openclaw windows服务部署方案

今天在InsCode(快马)平台上尝试了一个很有意思的实战项目:把openclaw部署到Windows生产环境。整个过程比我预想的顺利很多,特别是平台能直接生成接近生产要求的部署代码,省去了大量重复劳动。下面记录下具体实现思路和关键环节: 服…

作者头像 李华