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循环怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。
推荐阅读
-
linux怎么搭建ftp服务器(linux ftp命令)
linuxftp命令?很欢喜问本问题,此观点祝你好运吧!再连接ftp服务器。格式:ftp[hostname|ip-address...
-
vrayforsketchup怎么导出高清图(vary4.0 for su渲染参数设置)
vary4.0forsu渲染参数设置?1.宿舍参数设置如下2.指定渲染器,我们你选择V-RayAdv3.00.03V-Ray...
-
linux怎么调出屏幕键盘(linux | 怎么打出来,管道符号怎么打)
linux|怎么打出来,管道符号怎么打?楼主,你好!“|”这个符号在linux环境称做“管道符”框输入方法:Shift键盘的“...
-
navicat(for mysql 过期如何解决 Navicat for MySQL如何使用)
NavicatforMySQL如何使用?1.下载NavicatforMySQL软件后。2.在文件里找到navicat.Na...
-
linux系统生成core文件(linux udp缓存配置)
linuxudp缓存配置?临时再添加:sysctl-w_max26214400无限制再添加:将以下行添加到中:_max26214...
-
linux Centos如何安装PHP7
linuxCentos如何安装PHP7今天小编给大家分享一下li...
-
php不用for如何遍历处理数组
-
干了10多年的php,还不会安装,是不是丢人
-
Linux编程的十大代码编辑器新鲜出炉,你用的入榜单了吗?
-
从7到8,CentOS又更新了什么