Используйте QProcess. Стандартный вывод перенаправляйте в свои обработчики, например:
C++ (Qt)
QObject::connect(&process, &QProcess::readyReadStandardOutput, this, &CLanConfig::readyReadSlot);
QObject::connect(&process, &QProcess::readyReadStandardError, this, &CLanConfig::readErrorSlot);
В обработчиках примерно так:
C++ (Qt)
void CLanConfig::readyReadSlot(){
QByteArray data = process.readAllStandardOutput().simplified();
if(data.contains("hostapd.service")) {
...
} else
...
}
Пример запуска команды:
C++ (Qt)
void CLanConfig::chmod(bool addLcs) {
QString rights = addLcs? "o+r":"o-r";
QStringList arguments;
arguments << "-c" << "echo " + password + " | sudo -S chmod " + rights+ " " + path;
process.start("/bin/sh", arguments);
process.waitForFinished();
}
Со скриптом, видимо, аналогично.