Improved version of Rob's answer (in that you don't need to specify the full path of your executable), and also updated for Swift 3:
import Foundation func execCommand(command: String, args: [String]) -> String { if !command.hasPrefix("/") { let commandFull = execCommand(command: "/usr/bin/which", args: [command]).trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) return execCommand(command: commandFull, args: args) } else { let proc = Process() proc.launchPath = command proc.arguments = args let pipe = Pipe() proc.standardOutput = pipe proc.launch() let data = pipe.fileHandleForReading.readDataToEndOfFile() return String(data: data, encoding: String.Encoding.utf8)! } }