Mac OS X中利用Swift执行命令行并获取执行结果
2016-05-27 本文已影响2090人
冷大大_hawkleng
本人深夜研究所得,转载请注明原作者
我们有时候会在终端中输入命令行并获取相应的结果,例如下述命令可以获取Mac机硬件信息:
system_profiler SPHardwareDataType
同样也可以在Swift程序中利用该命令行获取程序运行主机的硬件信息,具体代码可参考如下(已封装成函数,可直接调用):
/// 执行命令行
/// - parameter launchPath: 命令行启动路径
/// - parameter arguments: 命令行参数
/// returns: 命令行执行结果
static func runCommand(launchPath: String, arguments: [String]) -> String {
let pipe = NSPipe()
let file = pipe.fileHandleForReading
let task = NSTask()
task.launchPath = launchPath
task.arguments = arguments
task.standardOutput = pipe
task.launch()
let data = file.readDataToEndOfFile()
return String(data: data, encoding: NSUTF8StringEncoding)!
}
调用方式非常简单,例如:
let s = runCommand("/usr/sbin/system_profiler", arguments: ["SPHardwareDataType"])
print(s)
执行结果如下图所示(已进行信息保护)

本文首次发布于简书,希望对读者有帮助。