繁体   English   中英

如何使用 QProcess 启动 Shell 脚本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM