
Linux Shell编程:for in循环详解与实战应用

在Linux中,shell编程中的`for in`循环是一种常用的迭代结构,用于遍历字符串、数组或命令行参数。它提供了一种方便的方式来逐个处理一系列的元素,简化了脚本编写过程。下面将详细介绍`for in`循环的不同应用场景及其用法。
**1. 字符串枚举遍历**
`for in`可以用于简单的字符串枚举,如对服务端口号进行操作。例如,以下脚本通过`SERVICES`变量存储一组端口号,并使用`for`循环为每个端口执行iptables规则:
```bash
SERVICES="8022 2511 0800 0232 0213 306"
for x in $SERVICES
do
iptables -A INPUT -p tcp --dport $x -m state --state NEW -j ACCEPT
done
```
这里的`$x`会依次取`SERVICES`中的每个元素。
**2. 字符串数组赋值**
在循环中,可以将字符串列表中的元素逐一赋值给变量,比如:
```bash
#!/bin/sh
for i in "a b c"
do
echo "i is $i"
done
```
输出将是:`i is a`, `i is b`, `i is c`。注意这里变量名前没有`$`符号。
**3. 文件名遍历**
`for in`也可以用于遍历目录下的文件,但需要正确处理通配符。例如,以下脚本试图逐个读取`.h`文件,但由于语法错误,`$i`实际上代表了整个路径而非仅文件名:
```bash
# 错误的写法
for i in *.h; do
cat ${i}.h
done
# 改正后的写法
for i in *.h
do
cat $i
done
```
**4. 对命令行参数的处理**
在函数或命令中,`for in $*`用于遍历传递给脚本的所有参数,`$i`则是在循环体中处理这些参数的变量名。例如:
```bash
test() {
local i
for i in "$@"
do
echo "i is $i"
done
}
# 调用示例
shtest."参数1 参数2"
```
这将输出每个参数的值。
总结来说,`for in`循环在Linux shell编程中是处理字符串、数组和命令行参数的重要工具,理解其语法和用法对于编写高效、可维护的脚本至关重要。掌握不同情况下的`$`变量使用、通配符匹配以及变量替换规则,能让你在处理文件系统、配置文件和参数传递等方面更加得心应手。
相关推荐



















piaolankeke
- 粉丝: 482
最新资源
- JHipster博客实践:搭建与集成MySQL数据库教程
- 法院法庭查找器前端开发指南与实践
- NMSSH框架:Objective-C下的libssh2封装与应用
- 实现简单任务计划程序:JetBrains 2021实习任务解析
- fantasynames:创造幻想世界的随机命名工具
- 数据竞赛Top解决方案开源整理及持续更新
- NGSIM I-80路段数据集:路径预测研究利器
- Dione:实现矿工移动设备友好的UI解决方案
- Flask API实现域管理器功能:部署与操作指南
- Docker内使用Grype进行图像扫描与安全检查
- IoTeX区块链数据交互的Protobuf与gRPC API集成教程
- Matheus Tomaz da Silva:JAVA培训生与技术爱好者的日常
- FB Messenger上的美国股票市场分析Bot
- SaaS模式下企业ERP进销存系统原型设计指南
- Git仓库迁移:Azure DevOps到GitHub的完整历史迁移工具
- Aletheo营销工具:区块链中的AI与侧链技术结合
- 预算系统budgetzero:离线优先、隐私保护的开源项目
- Docker中预缓存依赖的Scala SBT开发环境快速部署
- 探索stars_between:Kotlin编写的星际飞船游戏开发
- 社区脚本片段贡献指南:如何提交和组织代码
- 创建赫利欧斯山庄网站:妈妈的HTML项目
- Ghost主题定制:优化图片尺寸与CSS属性提升易用性
- 个人网站分享:基于Cayman主题的自定义与创新
- 基于MERN的JWT认证样板应用:部署与使用指南