私は私のGitプロジェクトを再帰的に行ってそれらを引き出すBASHスクリプトを持っています。我々は、マスターと開発の2つの支店を使用します。私は&& git checkout development
が含まれるようにスクリプトを変更すると、私のスクリプトが実行に失敗し、私はこのエラーを取得する:追加引数を追加するとBASHスクリプトが失敗するのはなぜですか?
find: missing argument to `-exec'
私は再び&& git checkout development
一部を削除すると、エラーは、スクリプトが初期状態に戻っているにもかかわらず、同じまま。ここで
#!/bin/bash
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull && git status" \;
そして、ここでは、Gitチェックアウトコール(および削除git status
)である:
#!/bin/bash
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git checkout development && git pull" \;
はここで何が起こっていますか?スクリプトを変更した後にのみ問題が発生する可能性がありますか?
はこれを試してみてください: '見つけます。 $ 1 "/../ && pwd && git checkout開発&& git pull '_' {} '\;' – anubhava
これはうまくいきました。ありがとう!あなたはなぜその変更によって答えがうまくいくのか説明できますか? '' $ 1 ''の部分がコマンドライン引数を引っ張っているのですか、それとも何か違うことをしていますか? – Donglecow
cd: 'findを使う必要はありません。 "$ 1" /../&git -C "$ 1" /../ checkoutを開発します。&& git -C "$ 1" /../ pull '_ '{}' \; ' – user2394284