ソリューションでした:あなたの助けのためのウィルバーンウェルとwhjmへ
nohup fswatch -o ~/Notes -e "\\.git.*" | xargs -n 1 -I {} sh -c 'cd ~/Notes; git add -A; git commit --allow-empty-message -m ""' > /dev/null 2>&1 &'
感謝。
はまた、これは、vimのスクリプトのためだったので、フォーマットが(ケースの他に同様の問題に対する解決策を探しています)多少異なることがありました。ウィルバーンウェルが間違っていた
autocmd BufWinEnter *.note silent! execute '!nohup fswatch -o . -e "\\.git.*" | xargs -n 1 -I {} sh -c ''git add -A; git commit --allow-empty-message -m ""'' > /dev/null 2>&1 &'
。なお
{..}
はサブシェルではなく、
sh -c
コマンドは文字列を要求するということです。したがって、中括弧は不要で、私の場合は望ましくないgit commitメッセージが追加されました。
また、このvimスクリプトでvim execute
関数を使用すると、コマンド全体を引用符で囲む必要がありました。二重引用符ではなく、一重引用符を二重引用符で囲むと、execute
関数は引数を通常の文字列として受け入れることができ、うまくいきました。
もし 'sh〜/ auto_commit.sh'を' cd〜/ Notes && git add -A && git commit --allow-empty-message -am "に置き換えると"動作しません。 私は外部スクリプトファイルを使用しないようにして、すべてインラインで実行します。 – Nathan
〜/ Notesフォルダのnohupを起動し、 'git commit -A ...'を使って1つのコマンドにすることはできますか? –
私はこのコマンドがvimイベントによって起動されないので、 '〜/ Notes'ディレクトリにないvimの設定になっています。私はそこにその設定を置き、それをシンボリックリンクすることができますが、システムが 'PWD'と思うものが何であるかはわかりません。 – Nathan