2017-09-06 1 views
1

Ich möchte einen Befehl in Swift mit Process ausführen. Dies ist mein aktueller Code:wie Sie einen Befehl ausführen

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

Dies ist jedoch führt den Befehl als sh symbolicatecrash crash.crash. Ich möchte, dass dieser Befehl als ./symbolicatecrash crash.crash ausgeführt wird. Wie kann ich das Gleiche in Swift erreichen?

Ich habe versucht, den folgenden Code (die eine Laufzeit Absturz)

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

Mehr Dank ;-) und man kann das nicht mehr benötigten Kommentare jetzt löschen berücksichtigen. Ich wünsche ihnen einen wunderbaren Tag. Ich hoffe, heute das legendäre Abzeichen zu bekommen und Ihre 25 Punkte sind ein guter Start in diesen Tag. Dadurch hast du auch in der GhostCat upvote Lotterie gewonnen. – GhostCat

Antwort

5

einfach: Wenn Sie in voll Kontrolle des Weges sein verwendet werden - einfach einen absoluten Pfad zum Beispiel angeben , wie:

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

oder wo immer dieses Skript befindet.

Darüber hinaus: Beachten Sie, dass "./" als relativer Pfad von auf den Kontext Ihrer Anwendung abhängt.

In diesem Sinne: Sie könnten einen Blick here haben, zu verstehen, wie relative Pfade tatsächlich „implementieren“ -, um dann dieses Wissen zu nutzen, einen absoluten Pfad zu erstellen, den den gewünschten relativ Pfad selbst übereinstimmt.

Aber den Kommentar gegeben, die meisten „einfachen“ Antworten scheinen zu sein:

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

Es beantwortet nicht meine Frage einer Fähigkeit zu laufen als "./symbolicatecrash" – prabodhprakash

+0

Bitte sehen Sie auch eine verwandte Frage: https://stackoverflow.com/questions/46068822/getting-runtime-error-in-symbolic- crash-using-process-in-swift? noredirect = 1 # Kommentar79102277_46068822 – prabodhprakash

+1

'process.launchPath =" usr/bin/env " process.arguments = [" ./symbolicatecrash "," crash.crash "]' ist das richtige Möglichkeit, dies zu tun. Da deine Antwort genau übereinstimmt, bitte aktualisiere dies, poste das ich das als richtig markieren kann. Es ist wichtig, dies auf diese Weise zu tun, da die Anwendung zum Zeitpunkt der Ausführung von 'launchPath' zur Laufzeit abstürzen würde. – prabodhprakash

Verwandte Themen