在我的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
我怎样才能实现这一目标。
谢谢,
比尔
答案 0 :(得分:7)
应该是\n
,而不是/n
。您可能还想删除它后面的空格,但这没关系。
答案 1 :(得分:2)
cat
比echo
更合适:
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环境中。 (也就是说,在启动文件中进行分配。)