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

Ubuntu环境下shell脚本自动化编译Go代码不执行如何解决?

问题原因

你当前编写的脚本中仅使用了echo命令,该命令的作用仅为将后续的字符串内容输出到终端,并不会实际执行字符串对应的编译指令,因此只会打印命令而无编译效果。

解决方法

根据你的使用需求可选择以下任意一种修改方案:

方案1:直接执行编译(无命令打印)

移除脚本中的echo关键字,直接写编译指令即可,修改后脚本内容如下:

for i in *.go
do
    go build -o "${i%.*}" "$i"
done

方案2:执行编译同时打印命令

如果需要保留命令打印的效果方便排查执行过程,可以选择以下两种写法:

  • 写法A:保留打印逻辑,额外新增一行执行命令
for i in *.go
do
    echo "go build -o ${i%.*} $i"
    go build -o "${i%.*}" "$i"
done
  • 写法B:开启Shell调试模式,自动打印执行的命令
    在脚本开头增加set -x配置,Shell会自动输出所有执行的指令内容:
#!/bin/bash
set -x
for i in *.go
do
    go build -o "${i%.*}" "$i"
done
补充注意事项
  • 建议在脚本首行添加#!/bin/bash指定Shell解释器,避免不同环境下解释器兼容问题
  • 运行脚本前需确保脚本有执行权限,可执行chmod +x c.sh添加权限
  • 上述脚本中变量外层增加了双引号,可避免文件名包含空格等特殊字符时执行出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:45:06