由於某種原因,此分配: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)