我通常可以保存bash命令的输出 >> output_file.txt
但是当我执行cmake
输出仍然发送到屏幕而不是按预期输出文件:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D \
BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D \
INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON .. >> output_file.txt
Run Code Online (Sandbox Code Playgroud)
这是因为你的cmake输出的部分(可能全部,取决于具体情况)被流式传输到stderr.
使用此命令将stderr重定向到stdout:
cmake ... >> output_file.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
或者只将stderr附加到output_file.txt:
cmake ... 2>> output_file.txt
Run Code Online (Sandbox Code Playgroud)