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

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

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

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

for variable in (list)
do commandcommanddone

`

其中,do 和 done之间的命令成为循环体,执行次数和list列表中常数或字符串的个数相同。当执行for循环时,首先将in 后 list 列表的第一个常数或字符串赋给循环变量,然后执行循环体;接着将list 列表中的第二个常数或字符串赋值给循环变量,再次执行循环体。这个过程将一直持续到list 列表中无其它常数或字符串,然后执行done命令后的命令序列。

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


`#!/bin/bash#使用列表for循环显示5次欢迎操作
for variable  in 1 2 3 4 5
doecho "Hello, welcome $variable  times "
done`

这种示例的循环经常用于计数,范围被限定在1~5之间。如下是脚本执行结果,由于in 后面列表列出了5个参数,可以看出脚本执行5次欢迎操作。
[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]$

Linux shell中支持列表for 循环中使用略写的计数方式,我们将脚本略作改进
ex2,列表为略写形式

#!/bin/bash#使用列表for循环显示5次欢迎操作
for variable  in {1..5}
doecho "Hello, welcome $variable  times "
done

执行后,结果同脚本1相同
[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)
doecho "Hello, welcome $variable  times "
done

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

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

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

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

in {1…5…2} 实现1~5之内的数字,按照步数2进行跳跃
运行下,看下结果

[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)
doecho "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
doecho "$day"
done

[zhangqi@localhost shellscript]$ sh for_ex6.sh
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
[zhangqi@localhost shellscript]$

ex7、使用命令表示列表
[zhangqi@localhost shellscript]$ cat for_ex7.sh

#!/bin/bash#使用命令打印数组
for variable  in `ls /`
doecho "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/bashecho "number of arguments is $#"echo "What you input is :"#使用命令打印数组
for argument  in "$*"
doecho "$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

新手必看的30个Linux命令

Linux常用命令及使用方法

如何学习Linux

如何获取免费的云服务器

Bash for 循环使用方法相关推荐

  1. bash mysql 循环输出_Bash实用技巧:同时循环两个列表

    摘要: 你会学到一种原创的同时循环两个列表的方法.类似于Python或者Haskell的zip函数,非常简洁直观,效果如下: $ paste ( seq 1 5 ) ( seq 129 133 ) | ...

  2. bash for循环

    bash for循环 在bash脚本中,我们可以使用for循环去遍历一组元素,也可以使用for循环去遍历命令执行的结果,或者直接使用for循环遍历数字,得到索引. for循环事先提供一个元素列表,而后 ...

  3. bash命令的使用方法

    小编给大家分享一下bash命令的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  Bash(Bash)是 Bour ...

  4. android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...

    本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...

  5. python退出循环快捷_python退出循环的方法

    break 语句 Python break语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执 ...

  6. python lamda函数_python 用lambda函数替换for循环的方法

    场景如下: 现在有一个dataframe,其中一列为score,值从0-100, df: score 98 88 37 68 86 33 现在需要增加一列level,给这些分数分类,90分以上为A,6 ...

  7. 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入

    ------- android培训.java培训.期待与您交流! ---------- 黑马程序员-----集合框架类(四) 高级for循环.方法的可变参数及静态导入 1.1 高级for循环(示例1) ...

  8. python从多层循环嵌套中退出_python中退出多层循环的方法

    1.定义标记变量:利用变量值的变化退出循环 # 第一种嵌套形式 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]] # init_i = 0 # init_j = 0 flag ...

  9. bash for循环_Bash 中的 For 循环

    循环是编程语言的基本概念之一.当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便. 在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用. 在 Bash 脚本 ...

最新文章

  1. Vue中数组赋值问题
  2. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档
  3. 机器学习中常用的高级数据结构和数据分析包工具——pandas
  4. Spring boot 启动后执行特定的操作
  5. 读书笔记1 : program paradigm
  6. LVM逻辑卷,RAID磁盘阵列
  7. php 动态修改网站配置,动态修改php的配置项
  8. 采访实录:黄碟泛滥的市场调查
  9. 月薪23333元!淘宝招募“首席鉴雕官”,只需天天哈哈哈哈哈
  10. python的OS库测试
  11. Python稳基修炼之计算机等级考试易错概念题6(含答案)
  12. 朋友易得 ,知已难求
  13. 微信浏览器点击事件不生效怎么解决?
  14. 开始Flex Builder 3
  15. torch repeate 的用法
  16. 网站所在服务器查询方法
  17. 如何学会做一名优秀的下属
  18. pyhanlp 共性分析与短语提取内容详解
  19. 一心多用多线程-阻塞队列(5)-CountDownLatch
  20. 2021年危险化学品生产单位安全生产管理人员试题及解析及危险化学品生产单位安全生产管理人员模拟考试

热门文章

  1. 赛马网基本算法之--马路上的路灯
  2. C语言对文件进行crc32校验
  3. 7-1 AC Me (20分)
  4. 企业云安全的6个最佳实践
  5. Kafka Consumer Group和Consumer Rebalance机制
  6. 再理解:十六进制转八进制
  7. php iso,2017北京PHP开发者年会暨中国 isophp 社区成立
  8. C# DialogResult.OK == Form.ShowDialog()
  9. java 将html页面转成图片
  10. 悼词:张锐大哥,千言万语,留着梦里慢慢跟你说吧