![Цитата из команды `find -execdir test [команда]` (Bash)](https://rvso.com/image/1482231/%D0%A6%D0%B8%D1%82%D0%B0%D1%82%D0%B0%20%D0%B8%D0%B7%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B%20%60find%20-execdir%20test%20%5B%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0%5D%60%20(Bash).png)
Я хотел бы выполнить следующую команду для работы git fetch
в репозиториях git, если у них есть удаленный репозиторий (= git remote
непустой):
find -name .git -execdir test $(git remote) \; -execdir git fetch
^^^^^^^^^^^^^
How to quote/escape/mask this?
Пробовал много вариантов, которые не работают, например: "$(git remote)"
, '$(git remote)'
, \$\(git remote\)
, '"$(git remote)'"
, ...
решение1
Попробуй это:
find -name .git -execdir sh -c 'test $(git remote)' \; -execdir git fetch \;
и поскольку это в любом случае запускает оболочку, вы даже можете сделать:
find -name .git -execdir sh -c 'test $(git remote) && git fetch' \;