2013-03-22 50 views
0

我试图创建一个通过我的共享托管帐户SSH运行BASH shell脚本来自动详细git的网站控制系统:创建通过SSH外壳的文本文件

http://danielmiessler.com/study/git/#website. 

到目前为止,我的bash脚本是右出上述文章的:

cd ~/mydomains; mkdir $name.git; 
cd ~/mydomains/$name.git; git init --bare; 
/bin/vi ~/domains/$name.git/hooks/post-update 

第一2行正常工作。

当我添加第三行脚本似乎冻结了。在我的环境中vi的路径是/ bin/vi。

直接从文章中,我想执行以下操作:

vi /path/website.git/hooks/post-update 

然后插入:

GIT_WORK_TREE=/path/htdocs git checkout -f 

然后关闭该文件。

任何人都可以提供一些建议,现在该怎么做?

+2

为什么要使用'vi'? 'echo'GIT_WORK_TREE =/path/htdocs git checkout -f'>>/path/website.git/hooks/post-update'还不够吗? – Wrikken 2013-03-22 14:12:53

+0

感谢您的期待,我对Bash没有经验,所以只要按照步骤 – user61629 2013-03-22 14:31:16

回答

3

为什么你尝试在脚本中使用vi来添加行到文件中? 问题是,六是互动的,但你正在寻找如何自动化这个;-)

您应该使用

echo "GIT_WORK_TREE=/path/htdocs git checkout -f" >> ~/domains/$name.git/hooks/post-update 
+0

-1一步一步,这不是他的问题的答案,并且没有理由不使用vim。 – cmc 2013-03-22 14:13:57

+0

减号是什么?他的问题不是钩子,而是脚本,这使得钩子! – 2013-03-22 14:17:01

+0

对不起,我的坏。我无法撤消我的投票,但如果您对自己的帖子进行了小小的修改,我会继续。 – cmc 2013-03-22 14:21:30

1

我相信你需要做的钩子脚本执行之前,git会使用它。

chmod +x /path/website.git/hooks/post-update 

之后,推后,脚本应该执行。

+0

会做,我相信这是文章的下一行,问候,条例草案 – user61629 2013-03-22 14:29:34