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

git submodule foreach命令引号解析异常始终输出HELLO问题

Git命令执行异常成因

这个问题和你使用的WSL Ubuntu 20.04环境无关,也不存在引号解析错误,核心是管道命令的特性和使用逻辑错误导致的:

  • 管道符|的作用是将前一个命令的标准输出作为后一个命令的标准输入传递,但echo命令本身不会读取任何标准输入内容,不管前序git tag -l输出了多少内容,echo都会直接输出指定的HELLO字符串,前序命令的输出会被直接丢弃。你可以直接在任意Git仓库内执行git tag -l | echo "HELLO"测试,不管仓库有没有标签,最终都只会输出HELLO,和git submodule foreach没有关联。
  • 你用的单引号包裹逻辑本身没有问题,git submodule foreach已经完整接收到了引号内的所有命令,并且在每个子模块的子shell中正确执行了,只是你写的管道命令本身逻辑不符合预期。
  • 如果你的预期是先打印每个子模块的标签列表,再打印HELLO,把管道符换成逻辑与&&即可,修改后的命令为:git submodule foreach 'git tag -l && echo "HELLO"'。
  • 如果你的预期是只有子模块存在标签时才输出内容,可以调整命令为:git submodule foreach 'tags=$(git tag -l); if [ -n "$tags" ]; then echo "$tags"; echo "HELLO"; fi'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:45:04