shell脚本基础巩固(5)

for命令

读取列表

for命令作用的命令使得可以一直重复执行一系列命令直到达到某种限定条件,具体语法如下:

for var in list
do
    执行命令
done

其实这个for循环的语法和Python有很多相似的地方。语法中,list是可迭代的,var在执行循环的过程中依次代表list中的值,并且在do和done之间,可以使用var值

    注意

  • 由于var会依次代表list中的值,说明var的值每经过一次循环就会变化一次,直到最后一次循环,var保存的是list的最后一个值,在这个循环结束后,这个值依然会存在,除非你去改变它
  • 当在list内的字符串中使用了单引号时,需要用反斜线转义或者用另外双引号来限定
  • list中,所有的值都是用空格来分割,如果有包含空格的值,需要用双引号来限定
  • list中的值可以存储在一个变量中,这些值由空格分开,有双引号框起来,然后去循环遍历中的值,

实例如下:

执行结果如下:

读取命令

就是去循环遍历命令执行后的结果,实例如下:

循环遍历当前路径下的所有文件(ls),执行结果如下,结果为当前路径下的所有文件:

更改字段分隔符

在以上的讲述中,list中的值都是用空格来分隔的,其实在bash shell中,默认有三个字段分隔符:

  • 空格
  • 制表符
  • 换行符

我们可以根据需要去改变字段分隔符。控制这个字段分隔符的是一个环境变量IFS,我们可以临时改变这个IFS的值,即用赋值语法,举例如下:

IFS=$'\n'              # 以换行符为字段分隔符
IFS=:                  # 以冒号为字段分隔符
IFS=;                  # 以分号为字段分隔符
IFS=:;                 # 同时指定冒号和分号为分隔符

用通配符读取目录

用for遍历目录中的文件。进行此操作需要使用通配符,通配符会使得shell使用文件扩展匹配。

具体示例如下:

执行结果如下:

另外,还可以在for命令中列出多个目录通配符。

C语言风格的for命令

在shell中,除了以上讲述风格的for命令,还有C语言风格的for命令,具体示例如下:

执行结果如下:

额外的:C语言风格的for命令也允许迭代多个变量。但是只允许定义一种条件。示例如下:

执行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值