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

 更新时间:2025年09月05日 09:18:35   作者:姜小白-  
文章详细介绍了Linux shell中的for循环结构,重点分析列表for循环的三种形式:数字列表、字符串列表、命令列表及脚本传参列表,通过使用seq命令和跳步方式实现循环控制,并说明字符串列表的使用方法

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

for 循环有三种结构:

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

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

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

for variable in (list)
do 
    command
    command
    ...
done

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

#!/bin/bash

#使用列表for循环显示5次欢迎操作
for variable  in 1 2 3 4 5 
do
    echo "Hello, welcome $variable  times "
done
[zhangqi@localhost shellscript]$ sh for_ex1.sh 
Hello, welcome 1  times 
Hello, welcome 2  times 
Hello, welcome 3  times 
Hello, welcome 4  times 
Hello, welcome 5  times 
[zhangqi@localhost shellscript]$ 

ex2,列表为略写形式

#!/bin/bash

#使用列表for循环显示5次欢迎操作
for variable  in {1..5} 
do
    echo "Hello, welcome $variable  times "
done
[zhangqi@localhost shellscript]$ sh for_ex2.sh 
Hello, welcome 1  times 
Hello, welcome 2  times 
Hello, welcome 3  times 
Hello, welcome 4  times 
Hello, welcome 5  times 
[zhangqi@localhost shellscript]$ 

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

ex3,列表为简写形式

#!/bin/bash

#使用列表for循环显示5次欢迎操作
for variable  in $(seq 1 5) 
do
    echo "Hello, welcome $variable  times "
done

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

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

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

#!/bin/bash

#使用列表for循环显示5次欢迎操作
for variable  in {1..5..2} 
do
    echo "Hello, welcome $variable  times "
done

运行下,看下结果

[zhangqi@localhost shellscript]$ sh for_ex4.sh 
Hello, welcome 1  times 
Hello, welcome 3  times 
Hello, welcome 5  times 
[zhangqi@localhost shellscript]$ 

ex5,跳跃方式用seq表达

[zhangqi@localhost shellscript]$ cat for_ex5.sh 
#!/bin/bash

#使用列表for循环显示5次欢迎操作
for variable  in $(seq 1 2 5) 
do
    echo "Hello, welcome $variable  times "
done

[zhangqi@localhost shellscript]$ sh for_ex5.sh 
Hello, welcome 1  times 
Hello, welcome 3  times 
Hello, welcome 5  times 
[zhangqi@localhost shellscript]$ 

ex6,用字符串表示列表

[zhangqi@localhost shellscript]$ cat for_ex6.sh 
#!/bin/bash

#使用列表for循环显示周一到周日对应的英文
for day in Monday 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]$ 
[zhangqi@localhost shellscript]$ cat for_ex7.sh 
#!/bin/bash

#使用命令打印数组
for variable  in `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,通过脚本传参实现里列表

[zhangqi@localhost shellscript]$ cat for_ex8.sh 
#!/bin/bash

echo "number of arguments is $#"

echo "What you input is :"

#使用命令打印数组
for argument  in "$*" 
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]$ 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux实现自主Shell命令行解释器

    Linux实现自主Shell命令行解释器

    本文主要介绍了Linux实现自主Shell命令行解释器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Bash Shell中单引号和双引号的区别小结

    Bash Shell中单引号和双引号的区别小结

    在Bash中,单引号和双引号都能定义字符串,但它们处理变量扩展、特殊字符的方式不同,本文就来介绍一下Bash Shell中单引号和双引号的区别小结,感兴趣的可以了解一下
    2024-11-11
  • 详解shell脚本中的case条件语句介绍和使用案例

    详解shell脚本中的case条件语句介绍和使用案例

    这篇文章主要介绍了详解shell脚本中的case条件语句介绍和使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Linux下find和grep常用命令及区别介绍

    Linux下find和grep常用命令及区别介绍

    在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep,这两个命令还是有区别的,下面通过本文给大家讲解Linux下find和grep常用命令及区别介绍,需要的的朋友参考下吧
    2017-07-07
  • Shell 参数传递的使用方法

    Shell 参数传递的使用方法

    本文主要介绍了Shell 参数传递的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Linux文本查看命令及其选项详解(cat,head,tail)

    Linux文本查看命令及其选项详解(cat,head,tail)

    这篇文章主要介绍了Linux文本查看命令及其选项详解(cat,head,tail),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • nvidia-smi命令详解和一些高阶技巧讲解

    nvidia-smi命令详解和一些高阶技巧讲解

    一般情况下用的比较多的就是nvidia-smi的命令,其实掌握了这一个命令也就能够覆盖绝大多数场景了,但是本质求真务实的态度,本文调研了相关资料,整理了一些比较常用的nvidia-smi命令的其他用法,感兴趣的朋友跟随小编一起看看吧
    2023-01-01
  • Linux中自定义shell脚本启动jar包的方法

    Linux中自定义shell脚本启动jar包的方法

    这篇文章主要介绍了Linux中自定义shell脚本启动jar包的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 如何让history命令显示日期和时间

    如何让history命令显示日期和时间

    我们都对 history 命令很熟悉。它将终端上 bash 执行过的所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令。这篇文章主要介绍了让history命令显示日期和时间的方法,需要的朋友可以参考下
    2018-01-01
  • 使用fdisk命令管理磁盘分区详解

    使用fdisk命令管理磁盘分区详解

    这篇文章主要为大家介绍了使用fdisk命令管理磁盘分区详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论