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

Bash数组遍历执行stat命令遇语法错误,请求解决指引

Bash脚本语法错误修复方案

你的脚本存在三处关键语法错误,逐一修正如下:

  1. 数组遍历语法错误
    原循环行for i in $(dirs[@]};完全不符合Bash数组遍历规则,正确的数组元素遍历写法是用"${dirs[@]}"展开所有元素,不需要命令替换$(),且括号配对要正确。

  2. stat格式化参数错误
    stat -c "%U:$G"里的$G是错误用法,stat的格式化选项中,获取文件所属组的参数是%G,所以要改成"%U:%G"。

  3. 循环变量误用
    原脚本试图用${dirs[$i]}获取路径,但如果直接遍历数组元素,循环变量本身就是目标路径,无需再通过索引取值。

修复后的完整脚本:

dirs=(/mnt /mnt/data /mnt/data/1.txt)
for path in "${dirs[@]}"; do
    stat -c "%U:%G" "$path"
done

如果需要通过索引遍历数组(比如需要用到索引值的场景),可以改成这种写法:

dirs=(/mnt /mnt/data /mnt/data/1.txt)
for idx in "${!dirs[@]}"; do
    stat -c "%U:%G" "${dirs[$idx]}"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:45:33