当前位置: 首页 > news >正文

Bash 循环与函数、Linux 进程管理

Bash 脚本中的循环函数和 Linux 的进程管理是 shell 编程与系统运维的核心内容。下面用清晰的结构和大量实用例子整理成笔记形式(2026 年视角,基于 bash 5.x+ 常用写法)。

1. Bash 三种循环语句

循环类型关键字适用场景语法特点退出条件
forfor … in已知列表/范围/文件列表最常用、最安全遍历完列表
whilewhile 条件条件为真时继续(次数未知)类似其他语言 while条件为假
untiluntil 条件条件为时继续(直到条件为真)while 的“反向”版本条件为真
1.1 for 循环(最常用)
# 写法1:遍历列表(最常见)forvarinapple banana"cherry pie"orange;doecho"水果:$var"done# 写法2:用通配符遍历文件forfilein*.sh;doecho"脚本文件:$file"chmod+x"$file"# 注意加引号防空格文件名done# 写法3:C 风格(数字范围最常用)for((i=1;i<=10;i+=2));doecho"奇数:$i"done# 写法4:结合 seq 或 brace expansion(推荐)foriin{1..5};doecho$i;done# 1 2 3 4 5foriin$(seq10220);doecho$i;done# 10 12 14 ... 20
1.2 while 循环
# 经典:读取文件逐行(最安全写法)whileIFS=read-r line;doecho"行内容:$line"done<data.txt# 条件循环count=1while[$count-le5];doecho"计数:$count"((count++))done# 死循环 + break 退出(超级常用)whiletrue;doread-p"输入 q 退出:"input[[$input=="q"]]&&breakecho"你输入了:$input"done
1.3 until 循环(较少用,但某些场景很优雅)
# 等待某个文件出现until[-f /tmp/ready.flag];doecho"等待就绪文件出现..."sleep2doneecho"文件已就绪,开始处理!"# 计数到 10i=1until((i>10));doecho$i((i++))done

循环控制:break / continue

  • break:跳出整个循环
  • continue:跳过本次,进入下一次迭代
  • break 2/continue 2:跳出/跳过外层第 2 层循环(嵌套时有用)
foriin{1..5};doforjin{a..c};do[[$j=="b"]]&&continue2# 跳过外层本次echo"$i-$j"donedone

2. Bash 函数

Bash 函数是脚本模块化的核心。现代写法强烈推荐使用local变量 +return状态码 +echo返回数据。

基本语法
# 定义方式1(推荐)greet(){localname="$1"# 局部变量,防止污染全局echo"你好,$name!"return0# 成功返回 0(约定俗成)}# 定义方式2(旧式,也合法)functiongreet2{echo"Hi,$1"}# 调用greet"重阳"greet2"Warsaw"# 带返回值(状态码 + 数据)add(){localsum=$(($1+$2))echo"$sum"# 通过 stdout 返回数据(最常用)return0# 状态码}result=$(add3864)# 捕获 echo 输出echo"结果:$result"# 102echo"状态码:$?"# 0
常见陷阱与最佳实践
  • 不要直接用全局变量传结果 → 容易冲突
  • 推荐echo返回主要数据,return只返回 0~255 状态码
  • 参数:$1 $2 ... $@ $* $#
  • $@(推荐) vs$*:带引号时行为不同(处理空格参数)
show_args(){echo"参数个数:$#"echo"所有参数(@):$@"forargin"$@";doecho"→$arg";done}show_args"hello world"bash"Warsaw PL"

3. Linux 进程管理常用命令(2025-2026 实用组合)

目的常用命令组合说明与示例
查看所有进程ps aux/ps -efps aux | grep nginx
实时监控(交互)top/htop(需安装) /btop(现代替代)htop 里按 F9 kill 进程
树形查看进程关系pstree -p显示 PID 和父子关系
查找进程 PIDpgrep nginx/pidof nginxpgrep -l python带进程名
温和终止kill PID/kill -15 PIDSIGTERM,让进程自己清理
强制杀死kill -9 PID/pkill -9 -f "python app"SIGKILL,无法捕获,危险但有效
按名字杀pkill nginx/killall -9 ffmpegpkill 支持模式,killall 精确进程名
后台运行command &/nohup command &nohup 防终端关闭挂起
管理后台任务jobs/fg %1/bg %2/Ctrl+ZCtrl+Z 暂停 → bg 后台继续 → fg 拉回前台
脱离终端长期运行nohup python script.py > out.log 2>&1 &或使用screen/tmux/systemd服务
经典组合示例
  1. 查找并杀掉卡死的进程

    psaux|grep-i chrome|grep-vgreppkill-9 -f"chrome --type=renderer"
  2. 后台启动服务并记录日志

    nohup./my_server --port8080>server.log2>&1&tail-f server.log
  3. 暂停/恢复/杀后台任务

    sleep3600&# 后台睡1小时jobs# 显示 [1] Running ...fg%1# 拉回前台(可 Ctrl+C 杀)# 或kill%1# 直接杀后台任务

小练习建议

  1. 写一个函数backup_files,接收目录路径,备份所有 .txt 文件到 backup_日期/ 下
  2. 用 until 循环等待某个端口(例如 3306)被占用(netstat/ss/netcat 测试)
  3. 写脚本:循环监控某个进程(nginx),如果不存在则启动它(while + pgrep)

有哪部分想看更详细的完整脚本示例?
或者想深入某个工具(如 tmux/screen 的多会话管理、systemd 服务编写)?随时说~

http://www.jsqmd.com/news/401965/

相关文章:

  • 写作压力小了!10个降AI率工具测评:专科生必看的降AI率神器推荐
  • Seedance 2.0 Node.js 集成全链路优化(含性能压测数据+内存泄漏修复实录)
  • 【权威认证】CNCF联合Seedance官方发布的《2.0算力成本合规配置标准V1.2》核心条款拆解(含审计红线标注)
  • 不适合做静脉曲张手术的人群有哪些?
  • 学霸同款! 降AIGC软件 千笔·专业降AIGC智能体 VS 知文AI,MBA专属首选
  • 【信创适配黄金窗口期】:Seedance 2.0在统信UOS+海光C86平台实现TCO下降52%的7步标准化流程
  • 真的太省时间了!AI论文工具 千笔AI VS 学术猹,研究生必备!
  • 【Seedance 2.0 Node.js 部署权威指南】:20年SDK集成专家亲授5大避坑要点与性能调优黄金公式
  • 图像处理毕业设计中的人脸识别效率优化:从算法选型到部署加速
  • 【C++上岸】C++常见面试题目--网络篇
  • 超市会员管理系统毕设:基于微服务架构的效率提升实战与避坑指南
  • ChatTTS 声音克隆实战:如何用 AI 技术打造个性化语音助手
  • 深度测评 10个 AI论文网站:本科生毕业论文写作全攻略
  • ChatTTS生成速度优化实战:从并发瓶颈到高效推理
  • Vue实战:仿阿里云智能客服页面的架构设计与性能优化
  • Cursor+亮数据MCP,一键解锁亚马逊电商数据抓取、行业分析报告生成自动化
  • Seedance 2.0 SDK 在 Node.js 中部署到底难在哪?3个90%开发者踩过的致命错误,第2个99%人至今未察觉
  • 【Seedance 2.0算力成本优化白皮书】:20年架构师亲授4大企业级降本增效实战路径(含GPU利用率提升67%实测数据)
  • 2026别错过!降AI率工具 千笔·降AI率助手 VS 灵感风暴AI,继续教育专属神器
  • Seedance 2.0 SDK Node.js 部署全链路解析:从npm install 失败到国密SM4加密通信上线,仅需97分钟
  • 【Seedance 2.0安全隐私黄金三角】:可信执行环境(TEE)+差分隐私ε=0.8+零知识证明zk-SNARKs全链路验证
  • 安卓开发毕业设计入门实战:从零搭建一个符合工业规范的项目架构
  • 摆脱论文困扰! 8个AI论文写作软件测评:专科生毕业论文+开题报告高效助手
  • 算力账单异常?Seedance 2.0 Cost-Tagging API启用后,成本归因精度从±41%提升至±3.2%
  • 2026年ISO认证机构哪家好?市场评价高的机构盘点,知识产权认证/ISO9001认证,ISO认证办理机构哪家权威 - 品牌推荐师
  • 盒马鲜生礼品卡闲置?回收妙招来救场 - 京顺回收
  • 北京九号温泉生活馆优惠
  • GLM-4-9B-Chat-1M入门必看:Streamlit本地Web界面快速上手与提示词技巧
  • 为什么92%的Seedance 2.0部署者未启用安全沙箱模式?——生产环境RCE风险暴露面测绘与自动加固手册
  • 物联网安全和认证技术