2

在我的 bash 脚本中,我有:

echo -e '#!/bin/sh /n GIT_WORK_TREE=/home/realopti/domains/$name git checkout -f' >> ~/domains/$name.git/hooks/post-receive

这会产生:

#!/bin/sh /n GIT_WORK_TREE=/home/realopti/domains/john git checkout -f

在我的接收后文件中。

我希望文件看起来像:

#!/bin/sh
GIT_WORK_TREE=/home/realopti/domains/john git checkout -f

我怎样才能做到这一点。

谢谢,

账单

4

2 回答 2

7

应该是\n,不是/n。您可能还想删除它后面的空格,但这没关系。

于 2013-03-22T23:22:33.817 回答
2

catecho这个更合适:

cat << \EOF > ~/domains/$name.git/hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/home/realopti/domains/john git checkout -f
EOF

但对于这种特殊情况,使用模板可能更好。将您想要的内容放入$HOME/template-dir/hooks/post-receive并设置GIT_TEMPLATE_DIR=$HOME/template-dir在您创建 git 存储库的 shell 环境中。(也就是说,在你的启动文件中进行分配。)

于 2013-03-22T23:39:47.827 回答