Bash 脚本无法执行 Go 命令

标签 bash go

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

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

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

  • cd ../网络
  • 去拿
    ./staging.sh:第 43 行:go:找不到命令
  • cd ../网络
  • 开始安装
    ./staging.sh:第 44 行:go:找不到命令
  • CD ../服务
  • 去拿
    ./staging.sh:第 45 行:go:找不到命令
  • CD ../服务
  • 开始安装
    ./staging.sh:第 46 行:go:找不到命令

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

最佳答案

我猜您是按照 go 安装页面上的安装说明进行操作,该页面告诉您向 ~/.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

关于Bash 脚本无法执行 Go 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39186854/

相关文章:

linux - find 忽略我搜索的第一个文件名

go - Go 之旅练习 #2 : For continued

user-interface - GO GUI帮助(走包)

xml - 仅对Golang中的匹配字段取消编码innerxml

go - 更好的(一般)授权实现

go - 编写一个可以操作多个相似类型的函数

bash - bash 循环的多处理

用于创建另一个文件的 Bash 脚本

BASH shell 参数(间接)扩展

bash - ImageMagick - 透明背景上的 Alpha 蒙版