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

catこれよりも適切ですecho

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

しかし、この特定の状況では、テンプレートを使用する方がおそらく良いでしょう。必要なコンテンツを配置し、gitリポジトリを作成するシェルの環境に$HOME/template-dir/hooks/post-receive設定します。GIT_TEMPLATE_DIR=$HOME/template-dir(つまり、スタートアップファイルで割り当てを行います。)

于 2013-03-22T23:39:47.827 に答える