[Shell编程学习路线] | 您所在的位置:网站首页 › shell编程for › [Shell编程学习路线] |
🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月20日16点21分 🀄️文章质量:96分 目录 ————前言———— for 循环语句 基本结构 图示原理 for循环实例 测试 举一反三 实例(ping) 总结 ————前言————在Shell编程中,for循环是一个强大且常用的控制结构,可以极大地简化任务的自动化处理。无论是批量处理文件、执行重复性任务,还是实现复杂的逻辑控制,for循环都能提供高效且灵活的解决方案。在这篇文章中,我们将深入探索for循环的多种应用技巧,通过具体实例帮助你掌握其在实际编程中的妙用。不论你是Shell编程的新手还是有经验的开发者,这里都有适合你的实用技巧,助你在Shell脚本编程的道路上更进一步。 当面对各种列表重复任务时,使用简单的if语句已经难以满足要求,而顺序编写全部代码更是显得异常烦 琐、因难重重,学习的for循环语句,可以很好地解决类似问题。 for 循环语句for 循环是Shell脚本中用于遍历列表、数组或文件的重要工具。它通过指定一个变量和一组值,依次将 每个值赋给变量,并执行相应的命令块。这使得在Shell中能够方便地处理多个文件、目录或其他数据 集,用于自动化任务和批处理操作。 基本结构 for 变量名 in 取值列表 do 执行的命令 done`for 变量名 in 取值列表`: 这部分定义了循环的结构。`变量名` 是用来存储列表中当前值的变量名。`取 值列表` 是一个用空格分隔的列表,可以是具体的数值、字符串、文件名列表等。 `do`: 表示循环开始,后面紧跟着要执行的命令块。 `执行的命令`: 在每次循环迭代时执行的命令或命令块。可以是任意Shell命令,通常使用`变量名` 来访问 当前循环迭代中的值。 `done`: 表示循环体的结束。 它的作用是依次将列表中的每个值赋给变量名,并执行相应的命令块,直到列表中的所有值都被处理完 毕。 图示原理实例 1.根据文档中的姓名去创建用户 并设置密码为123456 编写脚本 user.sh vim user.sh #!/bin/bash #2024-6-13-13-57-35 for i in `cat user.txt` do useradd $i echo '123456' | passwd --stdin $i &> /dev/null done添加人员名单 vim user.txt wangwu zhangsan lisi smqnz通过上述实验 我们根据文本创建用户,现在我们根据文本删除用户 编写脚本内容 #!/bin/bash for i in `cat user.txt` do userdel -r $i echo "用户$i 删除成功" done可以看到家目录已经删除成功说明用户也是删除成功 实例(ping)题目要求编写一个脚本,根据给定的IP地址列表,检查每个主机的状态。这意味着脚本需要能够逐个Ping 每个IP地址,并显示每个主机是否可达。 第一步创建IP地址列表 第二步编写脚本 第三步执行并测试 vim ip.txt 192.168.93.1 192.168.93.2 192.168.93.111 192.168.93.11编写脚本 vim ip.sh #!/bin/bash for i in `cat ip.txt` do ping -c 3 -i 0.2 -W 3 $i &> /dev/null if [ $? -eq 0 ];then echo "$i is up" else echo "$i is down" fi don解释如下 for i in \cat ip.txt`: 使用 cat命令读取ip.txt 文件中的每一行,每一行一个IP地址。反引号 \ ` 用于命令替换,将 cat ip.txt 的输出作为 for 循环的输入。 ping -c 3 -i 0.2 -W 3 $i &> /dev/null: 对每个IP地址 $i 执行Ping命令: -c 3: 发送3个ICMP包。 -i 0.2: 设置ICMP包的发送间隔为0.2秒。 -W 3: 设置超时时间为3秒。 &> /dev/null: 将Ping命令的所有输出重定向到 /dev/null,即丢弃所有输出,只关注命令的返回状态。 if [ $? -eq 0 ]; then ... fi: 检查上一条命令的返回状态: $? 是上一个命令的退出状态码,Ping命令成功返回0,失败返回其他值。 如果返回状态为0,输出 "$i is up",表示主机可达。 如果返回状态不为0,输出 "$i is down",表示主机不可达或Ping超时。 通过本文的学习,我们详细探讨了Shell编程中for循环的多种应用场景和技巧。从基本的语法结构,到复杂的文件处理和数据操作,for循环展示了其在Shell脚本中的强大功能。我们不仅了解了如何使用for循环遍历列表、文件内容,还学会了在实际项目中应用这些知识以提高脚本的效率和可维护性。 通过这些实例,相信你已经对for循环有了更深刻的理解和更熟练的掌握。在今后的编程实践中,希望你能灵活运用for循环,为解决各种自动化任务提供高效的解决方案。Shell脚本的魅力在于其简洁和强大,for循环作为其中的重要工具,定会成为你编程道路上的得力助手。 继续探索Shell编程的其他强大功能,不断提升你的编程能力,期待你在Shell脚本编写中取得更多成就 "成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!" "每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。" 神秘泣男子 |
CopyRight 2018-2019 实验室设备网 版权所有 |