2014-03-04 36 views
1

我想寫一個簡短的腳本來記錄當前shell會話的某些環境變量到文件。不幸的是,「python --version」的輸出似乎忽略了(?)the >>操作符,而是打印到shell而不是文件。如何將「python --version」的輸出附加到bash shell中的文件中?

我最小的(不)工作示例:

rm path.log 
echo "python --version" >> path.log 
python --version >> path.log 

我希望該文件path.log隨後將有以下內容:

python --version 
Python 2.6.6 

而行「的Python 2.6.6 「打印到外殼而不是文件。我怎樣才能解決這個問題?

謝謝!

PS:這對

gcc --version 

回答

7

python --version輸出到STDERR工作完全正常。

您需要合併STDERRSTDOUT:說

python --version >> path.log 2>&1 

僅供參考,您可以驗證這樣的行爲:

$ python --version 1>/dev/null 
Python 2.7.4 

在上面的例子中STDOUT被重定向到/dev/null 。這意味着輸出被髮送到STDERR

2

一個簡單的解決方案是:

python --version 2>> path.log 
+0

是啊,沒有必要在所有涉及到標準輸出 – holdenweb

相關問題