我正在尝试编写一个简短的脚本来将当前 shell session 的某些环境变量记录到文件中。不幸的是,“python --version”的输出似乎忽略了(?)>> 运算符并打印到 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”行被打印到 shell 而不是文件。我该如何解决这个问题?
谢谢!
PS:这完全适用于
gcc --version
请您参考如下方法:
python --version 输出到 STDERR。
您需要将 STDERR 合并到 STDOUT 中:
python --version >> path.log 2>&1
作为引用,您可以通过以下方式验证此类行为:
$ python --version 1>/dev/null
Python 2.7.4
上面例子中的STDOUT被重定向到/dev/null。这意味着输出被发送到 STDERR。
