2017-09-06 191 views
1

我想使用ProcessSwift中運行命令。這是我當前的代碼:如何運行命令

process.launchPath = "/bin/sh" 
process.arguments = ["symbolicatecrash", "crash.crash"] 

然而,這種執行命令sh symbolicatecrash crash.crash。我想要這個命令被執行爲./symbolicatecrash crash.crash。我如何在Swift中實現同樣的功能。

我嘗試下面的代碼(這是一個運行時崩潰)

process.launchPath = "" 
process.arguments = ["symbolicatecrash", "crash.crash"] 
+0

更感謝;-),你可以現在就考慮刪除不再需要的註釋。祝你有美好的一天。我希望今天能夠獲得這個傳奇徽章,而你今天的25分是一個很好的開始。正因爲如此,你還贏得了GhostCat upvote彩票。 – GhostCat

回答

5

簡單:當你想在完全控制路徑的使用 - 簡單地指定例如絕對路徑,如:

process.arguments = ["/usr/bin/symbolicatecrash", "crash.crash"] 

或腳本所在的位置。

除此之外:請記住,「./」作爲相對路徑取決於應用程序上下文中的

在這個意義上說:你可以看看here瞭解如何真正「落實」相對路徑 - 以然後用這些知識來創建自己所需相對路徑相匹配的絕對路徑。

但鑑於評論,最「簡單」的答案似乎是:

process.launchPath = "usr/bin/env" process.arguments = ["./symbolicatecrash", "crash.crash"] i 
+0

它不回答我的問題,有能力運行,「./symbolicatecrash」 – prabodhprakash

+0

請同時看到一個相關的問題:https://stackoverflow.com/questions/46068822/getting-runtime-error-in-symbolicating-崩潰使用進程在迅速?noredirect = 1#comment79102277_46068822 – prabodhprakash

+1

'process.launchPath =「usr/bin/env」 process.arguments = [「./symbolicatecrash」,「crash.crash」]是正確的這種方式來運行。由於您的答案緊密匹配,請更新此信息,我可以將其標記爲正確。這樣做很重要,因爲不提供'launchPath',應用程序會在運行時崩潰。 – prabodhprakash