2012-02-02 14 views
1

ターミナルでコマンドを実行したときに出力するのと同じ形式でコマンドの出力をエコーし​​たいのですが、何らかの理由でエコーを使用して改行を削除するようです。キャプチャされたコマンドから複数行の出力をエコーする方法は?

例:

$ 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

色は決してありません。 gitは出力がttyではなく、カラーのエスケープコードを出力していないことに気付きました。 –

+0

あなたのOUTPUT-lineの前に 'IFS = '\ n''を試してみましょう。 – bos

+0

参照http://unix.stackexchange.com/questions/17732/where-has-the-trailing-newline-char-gone-from-my-command-substitution –

答えて

10

(使用するエコーは、色が維持されなかった):

 
echo "$OUTPUT" 

色として:出力がttyでない場合Gitがない出力カラーコードを行います。色コードを強制するには、次のようにします。

 
OUTPUT=$(GIT_PAGER_IN_USE=true git status) 
関連する問題