使用linux echo命令执行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
这是一个代码示例。请试试这个:
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
使用QProcessEnvironment
或qgetenv
或类似的访问环境变量。如果你想做的事情真的需要调用一个shell,首先传递这个进程(例如sh
)。echo
和QProcess都不是shell,因此不会为您解释环境变量$SHELL
。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- C++,系统无法执行指定的程序
- 使用C++中的模板和运算符重载执行矩阵运算
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 执行函数时导致崩溃的变量
- 无论条件是否为true,if总是在c++中执行
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 在C++中对T*类型执行std::move的意外行为
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如何在没有信号的情况下从C++执行QML插槽
- 如何确认我的constexpr表达式实际上已经在编译时执行
- C++17中的并行执行策略
- QML按钮点击功能执行顺序
- 程序在执行程序的其余部分之前退出
- 为什么catch中的代码没有被执行
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 将执行、作业和WinAPI相乘
- 对字符数组中的元素执行逐位操作
- 为什么g++在未执行的代码处标记强制转换错误
- 使用linux echo命令执行qtProcess