如何使用QProcess启动Shell脚本? Shell脚本中有八个不同的命令,一些带有其他没有的参数。
我尝试使用(使用Ubuntu 11.10)启动Shell脚本:
QProcess *Prozess = new QProcess();
Prozess->setWorkingDirectory(MainDirectory);
Prozess->start("/bin/sh", QStringList() << "Shell.sh");
但这不起作用,这意味着没有任何反应。如何使它工作?
答案 0 :(得分:4)
代码很好。问题出在运行时。
您的程序由于某种原因无法运行/bin/sh
(测试是否可以运行gedit
?),或者MainDirectory
变量的目录路径错误(调试它),或者Shell.sh
在该目录中不存在(大写错误?“。/ Shell.sh”怎么办?),或者你没有足够的权限来运行或修改目标目录/文件(它们是否属于吗?)。
答案 1 :(得分:1)
您已启动的流程正在后台运行。如果要查看正在运行的脚本的任何显式输出,则必须连接到void readyReadStandardOutput()
或/和void readyReadStandardError()
并明确读取该进程。例如:
void onReadyRead() {
QByteArray processOutput = Prozess->readAllStandardOutput();
}
答案 2 :(得分:0)
这应该有效:
QProcess::ProcessError Error = myProcess->readAllStandardError();
return Error;