为什么我的 post-receive 钩子无法运行虚拟环境源命令?

6 投票
1 回答
1215 浏览
提问于 2025-04-16 16:38

我有一个在 'git' 用户下运行的 post-receive 钩子。我的虚拟环境在 /python/ve//bin/activate 这个路径下,'git' 用户可以读取这个文件。运行:

source /python/ve/<name>/bin/activate

在 git 组的用户下运行是没问题的。

但是当它作为 post-receive 钩子在推送后运行时,我遇到了“source: not found”的错误。

我不太确定该去哪里找原因,任何提示都非常感谢。

1 个回答

14

这只是我的一个猜测,因为你没有提供完整的 post-receive 钩子的代码,但我怀疑你在开头没有写一个指向 /bin/bashshebang 行。你的 post-receive 钩子应该这样开始:

#!/bin/bash

我之所以这么想,是因为如果我使用严格的 Bourne shell,比如 dash,在尝试用 source 命令加载任何东西时,也会遇到同样的错误。

撰写回答