2016-11-09 12 views
2

GUIを使用して、Linux端末で可変内容を表示するために使用される "echo"コマンドを実行します。 私はこれを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 .................................... ....

ターミナルコマンド: [SETUP intern2atlas] $エコー$ SHELL

出力:/ binに/ tcshの環境変数にアクセスするための

+0

Plsのを適切に質問をします。コードだけを追加しないでください。 –

+0

ありがとう、私は質問を編集しました –

+0

ようこそ。 –

答えて

0

これはコード例です。 Plsはこれを試してみてください。

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

使用QProcessEnvironmentまたはqgetenvまたは類似します。実行したいことが本当にシェルを呼び出す必要がある場合は、そのプロセスを先に渡します(例えば、sh)。 echoもQProcessもシェルなので、環境変数$SHELLは解釈されません。

+0

ありがとう、私にコードサンプル –

関連する問題