何らかの理由で、この割り当ては次のOUT=$(git describe HEAD)
ように標準出力に出力されます (例):fatal: No names found, cannot describe anything.
これは正常な動作ですか? 他のコマンドではなぜこのようなことが起きないのでしょうか?
答え1
これは実際にはstderr
出力であり、 ではありませんstdout
。対話型端末からコマンドを実行する場合、 との両方stdout
がstderr
端末に送信されるよう設定されます。
stderr
変数に出力が必要な場合(おそらく必要ないでしょうが、とにかく)、stdout
次のようにリダイレクトします。
OUT=$(git describe HEAD 2>&1)
または、スクリプトを実行している人にその出力を見せたくない場合はstderr
、次のようにして出力を削除します。
OUT=$(git describe HEAD 2>/dev/null)