Bash脚本无法执行Go命令

时间:2016-08-28 00:03:09

标签: bash go

我试图编写一个bash脚本来自动在不同的目录中运行go get / install。相关部分在这里:

( cd ../web ; go get )
( cd ../web ; go install )
( cd ../services ; go get )
( cd ../services ; go install )

当我执行脚本时,我得到了这个:

  • cd ../web
  • 去得到 ./staging.sh:line 43:go:command not found
  • cd ../web
  • 去安装
    ./staging.sh:line 44:go:command not found
  • cd ../services
  • 去得到 ./staging.sh:line 45:go:command not found
  • cd ../services
  • 去安装
    ./staging.sh:line 46:go:command not found

如果我只是手动转到目录并运行命令,它们可以正常工作。为什么他们在从脚本运行时没有执行?

1 个答案:

答案 0 :(得分:4)

我猜您按照安装页面上的安装说明操作,告诉您在~/.profile文件中添加一些行。这个文件doesn't load for non-interactive sessions (eg; your script.)所以你需要将它添加到shell的rcfile中,或者在脚本中用它的完整路径引用go二进制文件。

通过在shell中运行,您可以找到go的完整路径:

$ which go
/path/to/go

然后,在你的脚本中:

GO=/path/to/go
$GO command

或者,您可以在脚本中扩展PATH

PATH=$PATH:/path/to