我想使用GUI执行"echo“命令,该命令用于显示linux终端中的可变内容。我使用qProcess编写了这篇文章,但它只输出$SHELL作为输出。
QString cmd = "echo $SHELL";
QProcess *process = new QProcess;
process->start(cmd);
process->waitForBytesWritten();
process->waitForFinished();
qDebug() << process->readAll();`Qt代码输出:$SHELL.
终端命令: intern2atlas SETUP$ echo $SHELL
输出:/bin/tcsh
发布于 2016-11-09 12:14:58
这是代码的一个例子。请试一试:
env.insert("TERM", "xterm");
processo.setProcessEnvironment(env);
//comando 1 - limpar a pasta
comando = "echo";
args.clear();
args<<"$TERM";
fullCommand = comando;
for(int i = 0; i < args.count(); i++)
fullCommand += " " + args.at(i);
processo.start(comando,args,QIODevice::ReadOnly);
processo.waitForFinished();
stdOut = processo.readAllStandardOutput();
stdError = processo.readAllStandardError();
ui->commandTextEdit->append(fullCommand);
ui->stdOutTextEdit->append(stdOut);
ui->stdErrorTextEdit->append(stdError);参考:http://www.qtcentre.org/threads/58131-Execute-system-command-from-QProcess
发布于 2016-11-09 11:13:31
使用QProcessEnvironment或qgetenv或类似的方法访问环境变量。如果您想要做的事情确实需要调用一个shell,那么首先传递该进程(例如,sh)。echo和QProcess都不是shell,因此不会为您解释环境变量$SHELL。
https://stackoverflow.com/questions/40505278
复制相似问题