Whi*_*aws 1 git ssh bash environment-variables githooks
我在远程存储库中有这个Git接收挂钩,该存储库在SSH会话中运行一堆命令:
#!/bin/bash
ssh -q admin@node-one << EOF
export GOPATH=~/go
export PATH=$GOPATH/bin:$PATH
echo $PATH
echo $GOPATH
cd ~/portfolio
./kill.sh
git pull
make build
./run.sh
EOF
Run Code Online (Sandbox Code Playgroud)
我收到与找不到goimports有关的错误,因为export在这种情况下似乎无法正常工作。
remote: /usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
remote:
Run Code Online (Sandbox Code Playgroud)
我可以手动运行该钩子,但效果很好,但是由于某些原因,当我git push从远程存储库中通过a对其运行时,它不起作用。
内联内容默认情况下会运行shell扩展,因此您的变量将在被调用的shell看到它们之前在文本中进行扩展。引用定界符中的任何内容以将其关闭,或转义您不希望扩展内联的位,例如
cat <<\EOD
export GOPATH=~/go
export PATH=$GOPATH/bin:$PATH
EOD
Run Code Online (Sandbox Code Playgroud)
要么
cat <<EOD
export GOPATH=~/go
export PATH=\$GOPATH/bin:\$PATH
EOD
Run Code Online (Sandbox Code Playgroud)