Qprocess 参数回显和管道
Qprocess arguments echo and piping
我正在尝试在 QProcess 下的 Raspberry Pi (Raspbian) 中启动 CEC 命令。
如果我在 shell 中执行这个:
echo 'standby 0' | cec-client -s
它正在工作,但如果我将它放入一个 Qprocess 中:
QProcess *proc = new QProcess;
proc->start("echo",{"'standby 0' | cec-client -s"});
proc->waitForFinished();
它没有按预期执行。否则在我的 Raspberry Pi 中工作得很好。我做错了什么?
问题是你不能运行 QProcess 的系统命令,而只能是单个进程。因此,解决方法是将您的命令作为参数传递给 bash:
process.start("bash", QStringList() << "-c" << "echo 'standby 0' | cec-client -s");
我正在尝试在 QProcess 下的 Raspberry Pi (Raspbian) 中启动 CEC 命令。
如果我在 shell 中执行这个:
echo 'standby 0' | cec-client -s
它正在工作,但如果我将它放入一个 Qprocess 中:
QProcess *proc = new QProcess;
proc->start("echo",{"'standby 0' | cec-client -s"});
proc->waitForFinished();
它没有按预期执行。否则在我的 Raspberry Pi 中工作得很好。我做错了什么?
问题是你不能运行 QProcess 的系统命令,而只能是单个进程。因此,解决方法是将您的命令作为参数传递给 bash:
process.start("bash", QStringList() << "-c" << "echo 'standby 0' | cec-client -s");