Bash 出口不';从通过post接收挂钩创建的ssh会话调用时无法工作

Bash 出口不';从通过post接收挂钩创建的ssh会话调用时无法工作,bash,git,ssh,environment-variables,githooks,Bash,Git,Ssh,Environment Variables,Githooks,我在远程存储库中有一个Git post receive钩子,它在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 ./

我在远程存储库中有一个Git post receive钩子,它在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


我可以手动运行钩子,它运行得很好,但由于某种原因,当我从远程存储库通过
git push运行钩子时,它不起作用。

内联内容默认运行shell扩展,因此在调用的shell看到变量之前,您的变量在文本中展开。引用分隔符中的任何内容以关闭它,或转义不希望扩展的内联位,例如

cat <<\EOD
    export GOPATH=~/go
    export PATH=$GOPATH/bin:$PATH
EOD

默认情况下,
cat内联内容会运行shell扩展,因此在被调用的shell看到变量之前,您的变量会在文本中展开。引用分隔符中的任何内容以关闭它,或转义不希望扩展的内联位,例如

cat <<\EOD
    export GOPATH=~/go
    export PATH=$GOPATH/bin:$PATH
EOD

cat谢谢你,它很管用!如何
source~/.bashrc
,在这种情况下有没有办法调用它?它似乎不工作,甚至与你的调整。谢谢你,它的工作!如何
source~/.bashrc
,在这种情况下有没有办法调用它?它似乎不工作,甚至与你的调整。
cat <<EOD
    export GOPATH=~/go
    export PATH=\$GOPATH/bin:\$PATH
EOD