不管我看起來如何做,我似乎無法得到命令的輸出被分配給bash中的變量。雖然我的腳本運行發現沒有任何錯誤,我沒有得到我想要的結果:Bash - 獲取命令的輸出
# Prompt if the user needs Qt
echo ""
echo "Checking for qt5-default."
echo ""
OUTPUT="$(sudo dpkg -s qt5-default)"
echo "OUTPUT:"
echo $OUTPUT
...
OUTPUT
將永遠迴響什麼。但是,如果我這樣做:
OUTPUT="$(ls -la)"
然後,它的工作原理。我想知道爲什麼。
這裏是我的意思是:
正如你所看到的,「輸出:」字符串來命令輸出後,這意味着輸出沒有被存儲在變量,但是在主外殼中運行,這讓我感到困惑。
下面是當OUTPUT="$(ls -la)"
會發生什麼:
在這種情況下, 「輸出:」 來之前,顯示出echo
命令工作正常。
任何想法?
聽起來就像它使用標準錯誤而不是標準輸出。在命令的末尾嘗試'2>&1'。 – 2015-02-10 00:45:15