如何使用QProcess启动Shell脚本
How to start a Shell Script with QProcess?
如何使用QProcess启动Shell脚本?Shell脚本中有八个不同的命令,有些带有参数,有些没有参数。
我试着用(使用Ubuntu 11.10)启动Shell脚本:
QProcess *Prozess = new QProcess();
Prozess->setWorkingDirectory(MainDirectory);
Prozess->start("/bin/sh", QStringList() << "Shell.sh");
但这不起作用,这意味着什么都没发生。如何使其发挥作用?
代码很好。问题出现在运行时。
由于某种原因,您的程序无法运行/bin/sh
(测试是否可以运行gedit
?),或者MainDirectory
变量的目录路径错误(调试它),或者该目录中不存在Shell.sh
(大写错误?"./Shell.sh"怎么办?),或您没有足够的权限运行或修改目标目录/文件(它们归您所有吗?)。
您启动的进程正在后台运行。如果要查看运行脚本的任何显式输出,则必须连接到void readyReadStandardOutput()
或/和void readyReadStandardError()
,并显式读取进程。例如:
void onReadyRead() {
QByteArray processOutput = Prozess->readAllStandardOutput();
}
这应该有效:
QProcess::ProcessError Error = myProcess->readAllStandardError();
return Error;
QProcess ().execute ("/bin/sh " + MainDirectory + "/Shell.sh");
将完成这项工作。
相关文章:
- 如何通过cpp程序运行shell脚本
- 我适合在我的构建系统中使用 shell 脚本而不是AX_CHECK_COMPILE_FLAG吗?
- CMake 引用我在 ~/bin 中创建的随机 shell 脚本(即使我删除了它)?
- 从带有参数的C++程序中调用shell脚本
- 通过C++应用程序运行 shell 脚本始于 JAVA
- 当 PHP、C++ 和 shell 脚本尝试访问同一个文件时,如何避免错误?
- 在 c++ 中捕获 shell 脚本退出状态
- 如何将我的 cli 信息(变量等)共享到子进程,这是一个 bash shell 脚本
- 为什么 C++ 中的 shell 脚本代码不起作用?
- C++:在Linux shell脚本中运行GDB
- C++中的程序如何使用"系统"变量与 Linux 中的 shell 脚本交互?
- 并行gnu通过shell脚本传递参数
- 将参数从 Qt 传递到 shell 脚本文件
- 运行 shell 脚本时出错:"pipe call failed"
- 从c++程序运行shell脚本会自动将shell脚本的输出显示到控制台吗
- 从shell脚本运行c scrips
- C 程序需要STDIN的输入,但我想从Shell脚本中输送/发送这些输入
- 如何在C++中正确运行 shell 脚本
- Shell脚本终止程序,但导致无法写入输出文件
- 基于模板的Shell脚本生成命令