[英]How to start a Shell Script with QProcess?
如何使用 QProcess 启动 Shell 脚本? Shell 脚本中有八个不同的命令,其中一些带有参数,另一些则没有。
我尝试使用(使用 Ubuntu 11.10)启动 Shell 脚本:
QProcess *Prozess = new QProcess();
Prozess->setWorkingDirectory(MainDirectory);
Prozess->start("/bin/sh", QStringList() << "Shell.sh");
但这不起作用,这意味着什么也没有发生。 如何使它工作?
代码很好。 问题出在运行时。
您的程序由于某种原因无法运行/bin/sh
(测试是否可以运行gedit
?),或者MainDirectory
变量有错误的目录路径(调试它),或者该Shell.sh
中不存在Shell.sh
(大写错误?“。/ Shell.sh”怎么办?),或者你没有足够的权限来运行或修改目标目录/文件(它们归你所有?)。
您已开始的过程在后台运行。 如果要查看正在运行的脚本的任何显式输出,则必须连接到void readyReadStandardOutput()
或/和void readyReadStandardError()
并显式读取进程。 例如:
void onReadyRead() {
QByteArray processOutput = Prozess->readAllStandardOutput();
}
这应该工作:
QProcess::ProcessError Error = myProcess->readAllStandardError();
return Error;
QProcess ().execute ("/bin/sh " + MainDirectory + "/Shell.sh");
会做的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.