2014-03-06 59 views
0

我有一个可以正常工作的post-commit挂钩,但出于某种原因,以下代码行无法正常工作。它创建我的测试文件,而不管失败。SVN提交后挂钩未正确执行命令

!#/bin/sh 

# force a failure 
ifconfig -z 1>/dev/null 2>&1 

if [ $? -ne 0 ] 
then 
    touch ~/Desktop/fail.txt 
fi 

fail.txt文件是使用或不使用-z创建的。但是,如果我运行这个相同的代码而不通过我的post-commit钩子执行,它就像它应该那样工作。

有什么建议吗?

回答

1

挂钩脚本在空的环境中执行,包括空的或严重受限的PATH。因此,您的脚本很可能找不到/无法执行ifconfig

指定钩子脚本中所有内容的完整路径。

+0

有趣的是,它能够确定'〜/'和'touch'是自成功创建文件以来的。我将尝试添加'ifconfig'的完整路径并查看会发生什么。 –

+0

请注意,我确实说过“严重限制PATH” - '''可能是有限环境的一部分,'touch'可能在那个'PATH'中。 – alroc

+0

您的建议奏效!感谢你及时的答复。 –