如何将"python --version"的输出附加到bash shell中的文件中?

Mic*_*oße 1 python bash shell append

我正在尝试编写一个简短的脚本来将当前shell会话的某些环境变量记录到文件中.不幸的是,"python --version"的输出似乎忽略了(?)>>运算符并打印到shell而不是文件.

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

rm path.log
echo "python --version" >> path.log
python --version >> path.log
Run Code Online (Sandbox Code Playgroud)

我希望文件path.log将具有以下内容:

python --version
Python 2.6.6
Run Code Online (Sandbox Code Playgroud)

但是"Python 2.6.6"行打印到shell而不是文件.我怎样才能解决这个问题?

谢谢!

PS:这完全没问题

gcc --version
Run Code Online (Sandbox Code Playgroud)

dev*_*ull 7

python --version输出到STDERR.

你需要合并STDERR到STDOUT:

python --version >> path.log 2>&1
Run Code Online (Sandbox Code Playgroud)

作为参考,您可以通过以下方式验证此类行为:

$ python --version 1>/dev/null
Python 2.7.4
Run Code Online (Sandbox Code Playgroud)

的STDOUT在上面的例子中被重定向到/dev/null.这意味着输出正在发送STDERR.