Linux Qt在终端上运行shell

Linux Qt在终端上运行shell,linux,qt,shell,Linux,Qt,Shell,我需要在mac中从Qt应用程序运行shell QString strProcess = "/bin/bash "; strProcess += (QDir::currentPath() + "/../../../apk_build.sh"); strProcess += " -a " + ui->textEdit_apk->toPlainText(); strProcess += " -o " + ui->textEdit_out->toPlainText(); strP

我需要在mac中从Qt应用程序运行shell

QString strProcess = "/bin/bash ";
strProcess += (QDir::currentPath() + "/../../../apk_build.sh");
strProcess += " -a " + ui->textEdit_apk->toPlainText();
strProcess += " -o " + ui->textEdit_out->toPlainText();
strProcess += " -c " + ui->textEdit_channel->toPlainText();
QProcess process;
process.execute(strProcess);
这里有一些问题

问题1:无法在终端中显示内容信息,我需要查看运行信息

问题2:找不到apktool:未找到命令。如果我在没有Qt应用程序的终端中执行命令,则可以找到apktool(apktool路径:/usr/bin/apktool)。

问题1 如果您只想保存流程的输出,那么只需设置流程的标准输出

void QProcess::setStandardOutputFile ( const QString & fileName, OpenMode mode = Truncate )
如果您想实时获得输出,那么必须通过调用read()、readLine()函数,将流程作为标准的顺序I/O设备来处理

问题2 您必须加载用户的环境变量。尝试:

source /etc/profile
关于“问题1”:是否要获取脚本的输出?关于“问题2”:Qt程序中
$PATH
变量的值是多少?通过运行
echo$PATH
使用
QProcess
检查“问题1”:是的,我想获得脚本的输出。“问题2”:它显示$PATH