Bash script can't execute Go command

可紊 提交于 2020-12-04 07:15:41

问题


I'm trying to write a bash script to automatically run a go get/install in different directories. The relevant part is here:

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

When I execute the script, I get this though:

  • cd ../web
  • go get
    ./staging.sh: line 43: go: command not found
  • cd ../web
  • go install
    ./staging.sh: line 44: go: command not found
  • cd ../services
  • go get
    ./staging.sh: line 45: go: command not found
  • cd ../services
  • go install
    ./staging.sh: line 46: go: command not found

If I just go to the directories manually and run the commands, they work fine. Why aren't they executing when running from the script?


回答1:


I'm guessing you followed the installation instructions on the go installation page that tell you to add some lines to your ~/.profile file. This file doesn't load for non-interactive sessions (eg; your script.) So you either need to add it to your shell's rcfile, or reference the go binary by it's full path in your script.

You can find out the full path of go by running in your shell:

$ which go
/path/to/go

Then, in your script:

GO=/path/to/go
$GO command

Or, you can extend your PATH inside the script:

PATH=$PATH:/path/to


来源:https://stackoverflow.com/questions/39186854/bash-script-cant-execute-go-command

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!