应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(二)

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(二)

三、分隔符


image.png


举例:读取文件,但是文件中有空格

image.png

image.png

解决办法:

image.png

image.png


还有个办法比较简单的,就是使用while read在while的示例3中有介绍,这个不涉及分隔符,但是用for写无法避免


举例:将五个环境分行输出


[root@localhost sh]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#!/bin/bash
IFS_OLD=$IFS
IFS=':'
for i in  $PATH
do
        echo $i
done
IFS=$IFS_OLD

image.png

image.png


四、双循环



外层循环每执行一次,内层循环都要全部执行完毕,下一次外层循环才能再执行


内层循环看作是外层循环的一个命令语句


#!/bin/bash
#双层循环测试
for ((i=1;i<=5;i++))
do
        echo "outer loop: $i"
#外层循环
        for ((j=1;j<=5;j++))
        do
                echo "   inter loop: $j"
#内层循环
        done
done

image.png

image.png


五、退出循环



5.1 exit


外循环1次,内循环3次


image.png

image.png


5.2 break


外循环5次,内循环3次


image.png

image.png

image.png

image.png


5.3 continue

外循环五次,内循环4次


跳过j等于3的循环,其他的循环不影响


在for循环中比较好用,while中慎用


image.png

image.png


5.4 死循环


while循环中一定要注意迭代(自增)的方式

image.png

image.png

image.png


六、总结



for


给了已知的取值列表,使用for循环是首选


循环操作一般会首选for循环


for(())


for i in ...


循环的分隔符 IFS是空格,制表符\t 换行符\n


while


需要满足某种条件时可以使用,不知道循环次数时可以配合配合退出语句(break,exit,continue)实现循环操作


until


不满足条件的时候要已知循环时使用


多线程


{


....


}&


wait


读取文件


法一


while read 变量名


do


....


done < 文件名


法二


cat 文件 |while read 变量名


do


....


done


退出循环


exit  n(0-255)退出shell脚本进程,并且可以返回指定状态码,执行exit后脚本后面的所有语句都不执行


break 跳出当前的循环体,去执行循环后面的语句(默认跳出单层循环),break 2 跳出两层循环


continue 中止某次循环的执行,但不会完全中止整个循环(跳过这次循环);while until循环中使用要慎重,如果continue放在迭代语句前面会造成死循环

目录
相关文章
|
26天前
|
Shell 开发者
Shell 函数深入解析与实践
了解 Shell 函数的基础,包括定义、参数传递及返回值。函数定义有多种语法,如 `function func() {...}` 或 `func() {...}`。参数通过 `$1`, `$2` 等访问,`$@` 代表所有参数。`return` 用于返回退出状态码(0-255),非数值数据需用 `echo`。正确获取函数返回值应立即检查 `$?`,例如:`result=$?`。实践中不断探索和学习!
14 1
|
27天前
|
Shell UED Python
Shell 循环语句:重复任务的自动化利器
在Shell脚本中,循环语句如`while`和`for`是自动化任务的关键。`while`循环在条件满足时执行,例如计算1到100的和;`for-in`循环遍历列表,可用于迭代指定数值或命令输出,如求1到100的和。`select-in`循环提供交互式菜单,增强脚本用户体验。理解并运用这些循环能提升脚本效率和可读性。现在,动手试试吧!
26 2
|
1月前
|
Shell Linux
shell循环读文件 Linux脚本读文件
shell循环读文件 Linux脚本读文件
26 3
|
18天前
|
Unix Shell Perl
技术心得:实例解析shell子进程(subshell)
技术心得:实例解析shell子进程(subshell)
|
1月前
|
机器学习/深度学习 Shell Linux
linux shell脚本判断文件或文件夹是否存在循环操作
linux shell脚本判断文件或文件夹是否存在循环操作
36 0
|
2月前
|
机器学习/深度学习 Shell Perl
shell 脚本循环语句
shell 脚本循环语句
|
2月前
|
存储 Java 程序员
深入解析Java中的foreach循环语句
深入解析Java中的foreach循环语句
22 0
|
3天前
|
JavaScript 前端开发 Shell
Shell 脚本编程保姆级教程(上)
Shell 脚本编程保姆级教程(上)
|
4天前
|
网络协议 Shell Linux
Shell脚本配置Centos静态ip地址
这是一个用于在CentOS上设置静态IP的Shell脚本摘要: - 脚本交互式获取用户输入的IP地址、子网掩码、网关和DNS。 - 使用`sed`命令动态更新`/etc/sysconfig/network-scripts/ifcfg-ENS33`配置文件。 - 修改`BOOTPROTO`为`static`,并设置IP、NETMASK、GATEWAY和DNS1字段。 - 用`systemctl restart network`重启网络服务。 - 提示用户新配置的静态IP信息。

推荐镜像

更多