Как правильно выполнить подстановку и объединение команд в скрипте bash и отобразить вывод - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь разделить следующую команду, чтобы использовать ее в сценарии:

git diff HEAD --name-only && git submodule foreach git diff HEAD  --name-only | grep -v '^Entering') 

Итак, я попытался сделать это:

GIT_CMD=$(git diff HEAD --name-only)
GIT_SUBMODULE_CMD=$(git submodule foreach git diff HEAD  --name-only)


CMD="$GIT_CMD && $GIT_SUBMODULE_CMD | grep -v '^Entering'"
echo $CMD

и вывод I get is:

<file names> | grep -v '^Entering'

$ GIT_CMD && $ GIT_SUBMODULE_CMD выполнены, но я не знаю, что делать с частью "| grep".

1 Ответ

1 голос
/ 26 февраля 2020

Помещение команды в $() выполнит команду и поместит вывод в переменную.

Попробуйте:

GIT_CMD="git diff HEAD --name-only"
GIT_SUBMODULE_CMD="git submodule foreach git diff HEAD  --name-only"


CMD="$GIT_CMD && $GIT_SUBMODULE_CMD | grep -v '^Entering'"
echo $CMD

Теперь вы просто назначаете команду для переменной и не вывод команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...