shell编程基础(第9篇:循环)

前言

    在生活中我们总会做重复的事情,程序中使用循环模拟做重复的事情,任何语言都有循环语句,在shell编程中,支持3种循环的语法,分别是while、for、for in!

while的两种语法

1、放在同一行

while condition; do
    command
done

while与do放在同一行,使用;隔开,while每次会判断condition的退出状态码,如果为0,则执行循环体的代码

2、不放在同一行

while condition
do
    command
done

while与do不在同一行,此时不需要;

单行写法

while true; do echo 'hello world'; done

使用;隔开即可

只判断退出状态码

while true; do 
    echo 'hello world'; 
done

由于true这个命令的退出状态码永远为0,所以循环将一直进行下去。只要有退出状态码的命令都可以放在while的后面,它们可以是

1、函数

2、一个命令

3、另一个脚本程序

等等,只要有退出状态码,则可作为条件

多个条件,只认最后一个条件

while true; false; do 
    echo 'hello world'; 
done

同一行,只认最后一个条件的退出状态码

while总结

1、几乎与if的标准一样,条件就是退出状态码,所以test命令也经常作为条件来使用

2、while的使用率还挺多的,请学会它吧

for in语法

1、放在同一行

for item in hello world; do
    echo $item
done

2、不放在同一行

for item in hello world
do
    echo $item
done

列表

在for in语法中,in后面跟着是列表,且列表以空白字符(空格、换行、制表)分隔的单词组成的列表,循环中,列表中的单词会一个一个被遍历,所以我们经常可以利用命令替换的返回值,进行遍历,比如遍历当前工作目录下的每一个文件

for file in $(ls);do
    echo $file
done

写在一行

for item in hello world;do echo $item; done

利用文件名替换

for i in *.png; do
  echo $i
done

for in总结

1、记住一条,in后面的是由空白字符分隔的单词列表(注意:IFS可以修改默认的分隔符)

2、双引号与单引号会使单词分隔功能失效,造成无法生成需要的列表

for语法

    类C语言的创新是计算机高级语言的鼻祖,shell编程同样也学习C语言的for语法

for (( i=0; i<5; i=i+1 )); do
  echo $i
done

    语法呢,双括号,哈哈,躲不掉!!在双圆括号中,访问变量值,连美元符都可以省去了!!

无限循环

for ((;;))
do
    echo hello world
    sleep 5
done

最后的总结

1、shell编程中,支持while、for in、for,3种循环方式

2、其实还有另外一种until,由于不常用,本文不再提及

3、无论什么语言,遵守其标准语法,学习起来事半功倍!!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值