从 C++ 执行 bash 脚本并读取其输出 ubuntu sdk

Executing bash script from C++ and read its output ubuntu sdk

我有一个 ubuntu 应用程序,我正在尝试从中执行 bash 脚本,但它似乎无法正常工作。我试着用 system()

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>

    int main(int argc, char *argv[])
    {
// tried both
        system("./script.sh");
       // system ("script.sh")

    }

此外,我已经尝试研究这个但没有找到解决方案;是否也可以读取输出并显示在文本框中。

使用popen().

FILE *script;
char line[LINESIZE];
script = popen("./script.sh", "r");
while (fgets(line, sizeof(line), script)) {
    ...
}
pclose(script);

你是 运行 脚本并不重要。这将适用于任何 shell 命令。

对于希望在 QT 中执行此操作的任何人,这是我所做的:

 QProcess proc;

        proc.start("gnome-terminal", QIODevice::ReadWrite);

        if (proc.waitForStarted() == false) {
            qDebug() << "Error starting terminal process";
            qDebug() << proc.errorString();

            return (-1);
        }