Nếu bạn muốn sử dụng môi trường bash để gọi các lệnh, hãy sử dụng hàm bash sau đây sử dụng phiên bản Legoless đã được sửa chữa. Tôi đã phải xóa một dòng mới ở cuối khỏi kết quả của hàm shell.
Swift 3.0: (Xcode8)
import Foundation
func shell(launchPath: String, arguments: [String]) -> String
{
let task = Process()
task.launchPath = launchPath
task.arguments = arguments
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: String.Encoding.utf8)!
if output.characters.count > 0 {
let lastIndex = output.index(before: output.endIndex)
return output[output.startIndex ..< lastIndex]
}
return output
}
func bash(command: String, arguments: [String]) -> String {
let whichPathForCommand = shell(launchPath: "/bin/bash", arguments: [ "-l", "-c", "which \(command)" ])
return shell(launchPath: whichPathForCommand, arguments: arguments)
}
Ví dụ để lấy nhánh git đang làm việc hiện tại của thư mục làm việc hiện tại:
let currentBranch = bash("git", arguments: ["describe", "--contains", "--all", "HEAD"])
print("current branch:\(currentBranch)")