带有 linux 的变量内容列表 echo 命令 运行 with qtProcess
List of variable contents with linux echo command Run with qtProcess
我想执行 "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
使用QProcessEnvironment
或qgetenv
或类似的方法来访问环境变量。如果你想做的事情真的需要调用一个shell,首先通过那个过程(例如sh
)。 echo
和 QProcess 都不是 shell,因此不会为您解释环境变量 $SHELL
。
这是一个代码示例。请试试这个:
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
我想执行 "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
使用QProcessEnvironment
或qgetenv
或类似的方法来访问环境变量。如果你想做的事情真的需要调用一个shell,首先通过那个过程(例如sh
)。 echo
和 QProcess 都不是 shell,因此不会为您解释环境变量 $SHELL
。
这是一个代码示例。请试试这个:
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