2017-09-06 136 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