Qt Creator - 如何 运行 使用涉及进程替换的命令行参数进行编程

Qt Creator - How to run program with cmd line arguments involving process substitution

我正在尝试 运行 我的程序从 Qt Creator 使用涉及进程替换的命令行选项。这是命令(我希望写入文件的每一行都加上时间和日期,通过 predate.sh 实现,而终端的输出保持不变):

$ exec | tee >(predate.sh > output.txt) 

但是,我收到错误

/bin/sh: -c: line 0: syntax error near unexpected token `('

我的默认 shell 是 bash,我的 运行 环境中的 SHELL 变量也是 /bin/bash。如果我从终端执行该程序,但在 Qt Creator 中启动该程序,则此命令有效。

进程替换是bash的一个特性,而QtCreator显然被硬编码为使用sh来执行运行命令。您可以将 bash 注入到您的命令中,如下所示:

$ exec | bash -c 'tee >(predate.sh > output.txt)'