Qprocess参数echo和piping

时间:2016-02-14 21:38:48

标签: c++ shell process qt5 qprocess

我正在尝试在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中工作得很好。我做错了什么?

1 个答案:

答案 0 :(得分:2)

问题是您不能使用QProcess运行系统命令,而只能运行单个进程。因此,解决方法是将您的命令作为参数传递给bash:

process.start("bash", QStringList() << "-c" << "echo 'standby 0' | cec-client -s");