You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在zsh(或bash)的单行for循环中执行多条命令

zsh单行for循环多命令执行问题修复

你的问题出在zsh的for循环单行语法上:原命令for i in *; echo "==================="; cat $i done;里,循环体仅被识别为echo这一条命令,而cat $i done是循环结束后才执行的单条命令(此时i已经是目录里最后一个项目的名称),所以会出现分隔线数量正确,但cat只输出最后一个内容的情况。

正确的单行写法需要用do和done包裹循环内的多条命令,或者用大括号替代,注意分号的位置:

写法一(用do/done)

for i in *; do echo "==================="; cat $i; done

写法二(用大括号)

for i in *; { echo "==================="; cat $i; }

两种写法都能让echo和cat在每次循环中依次执行,实现每个项目前输出分隔线并打印内容的需求。

内容的提问来源于stack exchange,提问作者ecjb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:02:01