Run 提供了一种快速、简洁的方式来运行外部命令并读取其标准输出和标准错误。
要执行一个简单的命令,您可以这样做
let result = run("ls -all")
print(result.stdout)
result
的类型是 RunResults
,它包含
exitStatus
:命令的退出状态stdout
:执行的命令的标准输出stderr
:执行的命令的标准错误虽然 run("command")
可以通过空格分割参数,但有时参数分割并不简单。如果您有多个参数要传递给要执行的命令,您应该使用 run(command: String, args: String...)
。上面的代码相当于
let result = run("ls", args: "-all")
要自定义 run 函数,您可以传入一个自定义块
let result = run("ls -all") { settings in
settings.dryRun = true
settings.echo = [.Stdout, .Stderr, .Command]
settings.interactive = false
}
settings
是 RunSettings 的一个实例,它包含以下变量
settings.dryRun
:默认为 false。如果为 false,则实际运行该命令。如果为 true,则该命令将被记录到 result 的 stdout 参数中settings.echo
:自定义打印到 stdout 的消息,echo
可以包含以下任何内容EchoSettings.Stdout
:从运行命令返回的 stdout 将被打印到终端EchoSettings.Stderr
:从运行命令返回的 stderr 将被打印到终端EchoSettings.Command
:执行的命令将被打印到终端settings.interactive
:默认为 false。如果设置为 true,则该命令将使用 system
内核函数执行,并且只捕获退出状态。如果设置为 false,则该命令将使用 NSTask
执行,并且 stdout 和 stderr 都将被捕获。如果您希望启动的命令通过 stdin 向用户请求输入,请将 interactive
设置为 true。runWithoutCapture("command")
是一种在交互模式下运行命令的快速方法。返回值是该命令的退出代码。
.package(url: "https://github.com/getGuaka/Run.git", from: "0.1.0"),
MIT