用 Bash 数组安全遍历文件名

把名称收进数组,再用带引号的展开遍历。

macOSBash 脚本Shell脚本低风险
用 files=(*.md),再 for f in "${files[@]}"; do ...; done,即可处理含空格的文件名。

01命令

命令
$ files=(*.md); for f in "${files[@]}"; do echo "$f"; done

02作用说明

for f in *.md 遇到含空格的文件名会出错,而数组会精确保留每个元素。这是脚本中处理大量文件的可靠方式,也是图形界面不会遇到的自动化陷阱。

03风险

风险低风险
使用条件macOS default zsh/bash (bash 3.2+; some features need bash 4+ via Homebrew)
系统兼容性macOS with bash 3.2+ (GNU bash 4+ via Homebrew for advanced features)
!注意: 务必写成 "${array[@]}";不加引号会按空白重新拆分。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

最后验证: 2026-10-13 · 分类: 开发者