Как отобразить многострочный вывод из захваченной команды? - PullRequest
1 голос
/ 02 февраля 2012

Я хотел бы отобразить вывод команды в том же формате, который выводился бы при запуске команды на терминале, но по какой-то причине использование echo, по-видимому, устраняет перевод строки.

Пример:

$ OUTPUT=$(git status)
$ echo $OUTPUT
 # On branch feature_install # Untracked files: # (use "git add <file>..." to include in what will be committed) # # install/ nothing added to commit but untracked files present (use "git add" to track)

Но это должно было напечатать:

$ git status
# On branch feature_install
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   install/
nothing added to commit but untracked files present (use "git add" to track)

Кроме того, можно ли сохранить цвет в разобранном виде? (При использовании эха цвет не поддерживается)

1 Ответ

10 голосов
/ 02 февраля 2012

Если вы используете двойные кавычки, переносы будут сохраняться:

echo "$OUTPUT"

Что касается color: git не выводит цветовые коды, если вывод не является tty.Чтобы форсировать цветовые коды, вы можете сделать:

OUTPUT=$( GIT_PAGER_IN_USE=true git status )
...