我试图编写一个bash脚本来自动在不同的目录中运行go get / install。相关部分在这里:
( cd ../web ; go get )
( cd ../web ; go install )
( cd ../services ; go get )
( cd ../services ; go install )
当我执行脚本时,我得到了这个:
如果我只是手动转到目录并运行命令,它们可以正常工作。为什么他们在从脚本运行时没有执行?
答案 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