簡體   English   中英

如何使用 QProcess 啟動 Shell 腳本?

[英]How to start a Shell Script with QProcess?

如何使用 QProcess 啟動 Shell 腳本? Shell 腳本中有八個不同的命令,其中一些帶有參數,另一些則沒有。

我嘗試使用(使用 Ubuntu 11.10)啟動 Shell 腳本:

QProcess *Prozess = new QProcess();
Prozess->setWorkingDirectory(MainDirectory);
Prozess->start("/bin/sh", QStringList() << "Shell.sh");

但這不起作用,這意味着什么也沒有發生。 如何使它工作?

代碼很好。 問題出在運行時。

您的程序由於某種原因無法運行/bin/sh (測試是否可以運行gedit ?),或者MainDirectory變量有錯誤的目錄路徑(調試它),或者該Shell.sh中不存在Shell.sh (大寫錯誤?“。/ Shell.sh”怎么辦?),或者你沒有足夠的權限來運行或修改目標目錄/文件(它們歸你所有?)。

您已開始的過程在后台運行。 如果要查看正在運行的腳本的任何顯式輸出,則必須連接到void readyReadStandardOutput()或/和void readyReadStandardError()並顯式讀取進程。 例如:

void onReadyRead() {

   QByteArray processOutput = Prozess->readAllStandardOutput();
}

這應該工作:

QProcess::ProcessError Error = myProcess->readAllStandardError();
return Error;
QProcess ().execute ("/bin/sh " + MainDirectory + "/Shell.sh");

會做的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM