gpt4 book ai didi

bash - 从通过 post-receive 钩子(Hook)创建的 ssh session 调用时,导出不起作用

转载 作者:行者123 更新时间:2023-12-02 14:10:56 28 4
gpt4 key购买 nike

我在远程存储库中有这个 Git 接收后 Hook ,它在 SSH session 中运行一堆命令:

#!/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


我收到与 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:

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

最佳答案

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

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

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

关于bash - 从通过 post-receive 钩子(Hook)创建的 ssh session 调用时,导出不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58905328/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com