コマンド実行の戻り値を変数に代入して、出力したいと思いました。
RESULT= `sudo git show hoge 2>&1`
echo $RESULT
このように書くと、RESULTの中にコマンドの戻り値を「RESULT」という
変数の中に代入し、出力するという意味です。
ただ、「2>&1」の意味が分からなかったので、調べてみました。
下記の意味だそうです。
コマンドの出力には標準出力と標準エラー出力があり、番号が振られています。
1: 標準出力
2: 標準エラー出力
それぞれを別々のファイルに保存するときには次のようになります。
Command 1>log.txt 2>errlog.txt
コマンドは普通に実行すると標準出力と標準エラー出力はまぜて出力されます。
それと同じように混ぜてファイルに出力するための方法がご質問の記述です。
Command >log.txt 2>&1
ということは、標準出力も標準エラー出力も区別せずに変数にリダイレクトしたい
という意味です。
そもそもその2つが分かれているということを知りませんでした。
上記のコードでは、「標準出力」を「標準エラー出力」にマージするという書き方です。
VAR=
``command 2>&1 >/dev/null
ただ、このようにすることで、標準出力を/dev/nullに捨てることもできるようです。