是否可以查看由 execute_process 运行的命令的实时输出?
Posted
技术标签:
【中文标题】是否可以查看由 execute_process 运行的命令的实时输出?【英文标题】:Is it possible to see live output of command runned by execute_process? 【发布时间】:2018-07-13 13:47:53 【问题描述】:我正在运行一些耗时的 bash 脚本:
execute_process(
COMMAND "bash" "slow_script.sh"
WORKING_DIRECTORY $INSTALL_SCRIPT_DIR
ERROR_VARIABLE ERROR_MESSAGE
RESULT_VARIABLE ERROR_CODE)
我想看到进展。我试图显示 xterm 窗口:
execute_process(
COMMAND "xterm" "-e" "slow_script.sh"
WORKING_DIRECTORY $INSTALL_SCRIPT_DIR
ERROR_VARIABLE ERROR_MESSAGE
RESULT_VARIABLE ERROR_CODE)
它有效,但看起来很丑。
是否可以在脚本执行时在 CMake 输出中显示脚本输出?
【问题讨论】:
脚本输出到stdout
了吗?
@lurker,是的,还有 stderr
。
也许看看tee
。您还可以将stderr
重新路由到例如stdout
和my command blah blah ... 2>&1
。
【参考方案1】:
也许您可以将一些标准的/dev
设备用作OUTPUT_FILE
。
以下 CMake 示例在我的 Ubuntu 机器上进行了快速测试:
cmake_minimum_required(VERSION 2.4)
project(TestExecuteProcessToStdOut NONE)
execute_process(
COMMAND "$CMAKE_COMMAND" -E echo "Test"
ERROR_VARIABLE ERROR_MESSAGE
RESULT_VARIABLE ERROR_CODE
OUTPUT_FILE "/proc/self/fd/0"
)
参考文献
Difference between FILE * "/dev/stdout" and stdout Unix & Linux: echo or print /dev/stdin /dev/stdout /dev/stderr【讨论】:
它有效,谢谢!顺便说一句,由于某种原因,此解决方案在 QtCreator 中无效。 windows 呢?有什么想法吗?以上是关于是否可以查看由 execute_process 运行的命令的实时输出?的主要内容,如果未能解决你的问题,请参考以下文章
qmake 等效于 cmake execute_process()