2016-11-09 69 views
2

我想使用GUI來執行「echo」命令,該命令用於在linux終端中顯示變量內容。 我用qProcess寫了這個,但它只打印$ SHELL作爲輸出。使用linux echo命令的變量內容列表使用qtProcess運行

QString cmd = "echo $SHELL"; 
QProcess *process = new QProcess; 
process->start(cmd); 
process->waitForBytesWritten(); 
process->waitForFinished(); 
qDebug() << process->readAll();` 

Qt代碼輸出:$ SHELL .................................... ....

端子命令: [intern2atlas SETUP] $回聲$ SHELL

輸出:/ bin中/ tcsh的

+0

PLS適當發問。不要只添加代碼。 –

+0

謝謝,我編輯問題 –

+0

不客氣。 –

回答

0

這是一個代碼示例。請與此嘗試:

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

+0

問題解決,謝謝 –

+0

不客氣 –

0

使用QProcessEnvironmentqgetenv或類似訪問環境變量。如果您想要執行的操作確實需要調用一個shell,請先通過該過程(例如sh)。 echo和QProcess都不是shell,因此不會爲您解釋環境變量$SHELL

+0

謝謝,你能給我一個代碼示例 –