Есть класс для вызова#include "getPogram.h"getPogram::getPogram(){}
void getPogram::run()
{
myProcess = new QProcess(this);
connect(myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(slotDataOnStdout()));
connect(myProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(slotStandartError()));
myProcess->setReadChannel(QProcess::StandardError);
myProcess->start(toTxtProg);
exec();
return;
}void getPogram::slotDataOnStdout()
{
QStringList lst;
lst.append(myProcess->readAllStandardOutput());
emit otvetClass(lst);
myProcess->exitStatus();
return;
}
void getPogram::slotStandartError(){
QStringList lst;
lst.append(myProcess->readAllStandardError());
emit otvetClass(lst);
myProcess->exitStatus();
return;
}
из другого класса вызываю
//-- старт программа
void twoClass::startZaprosClass(){
QFile fileTemp(strPachProg+"/temp");
if(fileTemp.open(QIODevice::WriteOnly))
{
QTextStream Out(&fileTemp);
Out << "#!/bin/sh" << endl
<< "cd " << strPachProg << endl
<< "tar cvpzf " << strNamePacet << "_" << strNumPacet << ".orig.tar.gz " << strNamePacet << "-" << strNumPacet << endl
<< "rm -r " << strNamePacet << "-" << strNumPacet << "/*" << endl
<< "echo \"-----=====-----\"" << endl
<< "echo \"Archive " << strNamePacet << "_" << strNumPacet << ".orig.tar.gz harvested\"" << endl
<< "echo \"-----=====-----\"" << endl
<< "cd " << strNamePacet << "-" << strNumPacet << endl
<< "export DEBFULLNAME=\"" << strNameKey << "\"" << endl
<< "dh_make -s -e " << strMailKey << endl
<< "exit 0" << endl;
}
fileTemp.close();txtOtvetProg = new QTextEdit();
goProg = new getPogram;
goProg->moveToThread(goProg);
connect(goProg, SIGNAL(otvetClass(QStringList)), this, SLOT(otvetZaprosClass(QStringList)));
goProg->returnProgram("sh " + strPachProg + "/temp");
goProg->start();
return;
}void twoClass::otvetZaprosClass(QStringList otv){
foreach(QString str, otv) {
txtOtvetProg->append(str);
}
return;
}Вопрос такой, как в Shell скрипте написать автоматический ответ, когда идет последний запрос потверждения, в dh_make, проще сказать чтоб он не ждал когда нажмется <Enter> как это делается в терминале а проходил автоматом.
-----------------------------
Почему решил через Shell пройти с ним проще зайти в нужную папку и уже в ней вызвать прогу, средствами QT я этого не нашел что-то.
Програ пишется на Linux
Вопрос решился изменением строки<< "dh_make -s -e " << strMailKey << endl
на<< "echo | dh_make -s -e " << strMailKey << endl