如何在其参数中使用带有变量的 QProcess?
How to use QProcess with a variable in it's argument?
我想在我的 Qt 项目中使用 QProcess
到 运行 一个 Linux 命令。我的过程有一些参数,所以我使用了以下代码:
QString _strFileName = "/root/a.o";
QStringList _strListArguments;
_strListArguments << "-c" << "file " << _strFileName << " | grep ELF";
_processFile->start("bash", _strListArguments);
_processFile->waitForFinished();
输出为空。但是当我用一个值替换变量时,输出是好的,那里没有错误。
_strListArguments << "-c" << "file /root/a.o | grep ELF";
我该如何解决这个问题?
像 | grep ELF
这样的东西是 shell 表达式,由 shell 解析和解释。在这种特殊情况下,shell 产生两个进程,将前者的输出重定向到后者的输入。如果你想以编程方式执行此操作,你需要 运行 bash
或任何你使用 QProcess
的 shell 并传递 /root/a.o -c file | grep ELF
作为其参数。请参阅 man bash
以找出必要的标志。
我想在我的 Qt 项目中使用 QProcess
到 运行 一个 Linux 命令。我的过程有一些参数,所以我使用了以下代码:
QString _strFileName = "/root/a.o";
QStringList _strListArguments;
_strListArguments << "-c" << "file " << _strFileName << " | grep ELF";
_processFile->start("bash", _strListArguments);
_processFile->waitForFinished();
输出为空。但是当我用一个值替换变量时,输出是好的,那里没有错误。
_strListArguments << "-c" << "file /root/a.o | grep ELF";
我该如何解决这个问题?
像 | grep ELF
这样的东西是 shell 表达式,由 shell 解析和解释。在这种特殊情况下,shell 产生两个进程,将前者的输出重定向到后者的输入。如果你想以编程方式执行此操作,你需要 运行 bash
或任何你使用 QProcess
的 shell 并传递 /root/a.o -c file | grep ELF
作为其参数。请参阅 man bash
以找出必要的标志。