Zitieren Sie einen Befehl für `find -execdir test [Befehl]` (Bash)

Zitieren Sie einen Befehl für `find -execdir test [Befehl]` (Bash)

Ich möchte den folgenden Befehl git fetchin Git-Repos ausführen, wenn diese über ein Remote verfügen (= git remotenicht leer sind):

find -name .git -execdir test $(git remote) \; -execdir git fetch
                              ^^^^^^^^^^^^^
                              How to quote/escape/mask this?

Habe viele Variationen ausprobiert, die nicht funktionieren, wie: "$(git remote)", '$(git remote)', \$\(git remote\), '"$(git remote)'", ...

Antwort1

Versuche dies:

find -name .git -execdir sh -c 'test $(git remote)' \; -execdir git fetch \;

und weil dadurch sowieso eine Shell gestartet wird, können Sie sogar Folgendes tun:

find -name .git -execdir sh -c 'test $(git remote) && git fetch' \;

verwandte Informationen