How can I call an external command (launch a subprocess) from a Swift script?
Perhaps something like call(["ls", "-l"])
in Python.
Tasks in Swift are part of the concurrency framework introduced at WWDC 2021. A task allows us to create a concurrent environment from a non-concurrent method, calling methods using async/await. When working with tasks for the first time, you might recognize familiarities between dispatch queues and tasks.
You can still use NSTask in Swift. Your example would be something like this.
let task = NSTask()
task.launchPath = "/bin/ls"
task.arguments = ["-l"]
task.launch()
Swift 3+, macOS 10.13+
let task = Process()
task.executableURL = URL(fileURLWithPath: "/bin/ls")
task.arguments = ["-l"]
task.run()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With