使用linux echo命令执行qtProcess

List of variable contents with linux echo command Run with qtProcess

本文关键字:执行 qtProcess 命令 echo linux 使用      更新时间:2023-10-16

我想使用"echo"命令,该命令用于在linux终端中使用GUI显示变量内容。我使用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

这是一个代码示例。请试试这个:

   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

使用QProcessEnvironmentqgetenv或类似的访问环境变量。如果你想做的事情真的需要调用一个shell,首先传递这个进程(例如sh)。echo和QProcess都不是shell,因此不会为您解释环境变量$SHELL