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