Linux shell中for循环怎么用

Linux shell中for循环怎么用

这篇文章主要介绍“Linux shell中for循环怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux shell中for循环怎么用”文章能帮助大家解决问题。

在Linux shell 中for是常用的循环结构,其主要作用就是循环列表中的元素赋值给变量,每次赋值便执行一次循环,done就标志着一个循环的结束。

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

forvariablein(list)docommandcommand...done

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

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

#!/bin/bash#使用列表for循环显示5次欢迎操作forvariablein12345doecho"Hello,welcome$variabletimes"done

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

[zhangqi@localhostshellscript]$shfor_ex1.shHello,welcome1timesHello,welcome2timesHello,welcome3timesHello,welcome4timesHello,welcome5times[zhangqi@localhostshellscript]$

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

ex2,列表为略写形式

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

执行后,结果同脚本1相同

[zhangqi@localhostshellscript]$shfor_ex2.shHello,welcome1timesHello,welcome2timesHello,welcome3timesHello,welcome4timesHello,welcome5times[zhangqi@localhostshellscript]$

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

ex3,列表为简写形式

#!/bin/bash#使用列表for循环显示5次欢迎操作forvariablein$(seq15)doecho"Hello,welcome$variabletimes"done

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

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

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

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

in {1..5..2} 实现1~5之内的数字,按照步数2进行跳跃

运行下,看下结果

[zhangqi@localhostshellscript]$shfor_ex4.shHello,welcome1timesHello,welcome3timesHello,welcome5times[zhangqi@localhostshellscript]$

ex5、跳跃方式用seq表达

[zhangqi@localhostshellscript]$catfor_ex5.sh#!/bin/bash#使用列表for循环显示5次欢迎操作forvariablein$(seq125)doecho"Hello,welcome$variabletimes"done[zhangqi@localhostshellscript]$shfor_ex5.shHello,welcome1timesHello,welcome3timesHello,welcome5times[zhangqi@localhostshellscript]$

ex6、用字符串表示列表

[zhangqi@localhostshellscript]$catfor_ex6.sh#!/bin/bash#使用列表for循环显示周一到周日对应的英文fordayinMondayTuesdayWednesdayThursdayFridaySaturdaySundaydoecho"$day"done[zhangqi@localhostshellscript]$shfor_ex6.shMondayTuesdayWednesdayThursdayFridaySaturdaySunday[zhangqi@localhostshellscript]$

ex7、使用命令表示列表

[zhangqi@localhostshellscript]$catfor_ex7.sh#!/bin/bash#使用命令打印数组forvariablein`ls/`doecho"Everydirectoryis$variable"done[zhangqi@localhostshellscript]$shfor_ex7.shEverydirectoryisbinEverydirectoryisbootEverydirectoryisdevEverydirectoryisetcEverydirectoryishomeEverydirectoryislibEverydirectoryislost+foundEverydirectoryismediaEverydirectoryismntEverydirectoryisoptEverydirectoryisprocEverydirectoryisrootEverydirectoryissbinEverydirectoryisselinuxEverydirectoryissrvEverydirectoryissysEverydirectoryistmpEverydirectoryisusrEverydirectoryisvar[zhangqi@localhostshellscript]$

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

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

[zhangqi@localhostshellscript]$catfor_ex8.sh#!/bin/bashecho"numberofargumentsis$#"echo"Whatyouinputis:"#使用命令打印数组forargumentin"$*"doecho"$argument"done[zhangqi@localhostshellscript]$shfor_ex8.sh1helloshellnumberofargumentsis3Whatyouinputis:1helloshell[zhangqi@localhostshellscript]$

可以看出,参数列表可以是数字,也可以是字符串,但是输入是以空格进行分隔的,如果存在空格,脚本执行时会认为存在另一个参数。

关于“Linux shell中for循环怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-01-21 23:16:14
收藏
分享
海报
0 条评论
50
上一篇:Linux系统怎么搭建日志服务器 下一篇:Linux的od命令怎么用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码