Я пытаюсь написать сценарий bash для автоматического запуска go get/install в разных каталогах. Соответствующая часть здесь:Сценарий Bash не может выполнить команду Go
(cd ../web ; go get)
(cd ../web ; go install)
(cd ../services ; go get)
(cd ../services ; go install)
Когда я выполнить сценарий, я получаю это, хотя:
- кд ../web
- идут получить
./staging.sh: линия 43 : go: команда не найдена - cd ../web
- go install
./staging.sh: строка 44: идти: команда не найдена - кд ../services
- идут получить
./staging.sh: строка 45: перейти: команда не найдена - кд. ./services
- идут установить
./staging.sh: строка 46: перейти: команда не найдена
Если я просто перейду в каталоги вручную и запустил команды, они отлично работают. Почему они не выполняются при запуске из сценария?
Является ли 'go' в $ PATH? – jedifans
Звучит как проблема пути. Попробуйте добавить 'printenv | grep PATH' в ваш скрипт и убедитесь, что двоичный файл 'go' находится в одной из перечисленных папок. Если вы только что установили go, попробуйте запустить новый терминал – pnovotnak
Я получаю путь как: 'PATH =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ' Что отличает, если я запускаю grep путь, когда я иду в файл. Таким образом, это, вероятно, проблема. Как заставить скрипт получить правильный путь? – Graham