在Swift可执行文件中运行和打印zsh命令,可以通过调用系统函数system()
来实现。以下是一个简单的Swift代码示例,展示了如何执行并打印zsh命令:
import Foundation
func runZshCommand(command: String) {
let task = Process()
task.launchPath = "/bin/zsh"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.standardError = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)
if let error = pipe.fileHandleForReading.error {
print("Error reading output: \(error)")
}
if let errData = pipe.fileHandleForReading.readDataToEndOfFile() {
let stderr = String(data: errData, encoding: .utf8)
if let error = pipe.fileHandleForReading.error {
print("Error reading error output: \(error)")
}
print("Error: \(stderr)")
}
task.waitUntilExit()
if task.terminationStatus == 0 {
print("Command executed successfully")
} else {
print("Command failed with status \(task.terminationStatus)")
}
}
runZ.g看起来您在代码示例的最后一行有一个小错误,应该是 `runZshCommand()` 而不是 `runZ.g`。下面是修正后的完整代码示例:
```swift
import Foundation
func runZshCommand(command: String) {
let task = Process()
task.launchPath = "/bin/zsh"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.standardError = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)
if let error = pipe.fileHandleForReading.error {
print("Error reading output: \(error)")
}
if let errData = pipe.fileHandleForReading.readDataToEndOfFile() {
let stderr = String(data: err.py看起来您在代码示例的最后一行有一个小错误,应该是 `runZshCommand()` 而不是 `runZ.g`。下面是修正后的完整代码示例:
```swift
import Foundation
func runZshCommand(command: String) {
let task = Process()
task.launchPath = "/bin/zsh"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.standardError = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)
if let error = pipe.fileHandleForReading.error {
print("Error reading output: \(error)")
}
if let errData = pipe.fileHandleForReading.readDataToEndOfFile() {
let stderr = String(data: errData, encoding: .utf8)
if let error = pipe.fileHandleForReading.error {
print("Error reading error output: \(error)")
}
print("Error: \(stderr)")
}
task.waitUntilExit()
if task.terminationStatus == 0 {
print("Command executed successfully")
} else {
print("Command failed with status \(task.terminationStatus)")
}
}
runZshCommand(command: "echo 'Hello, World!'")
在这个修正后的示例中,我添加了一个调用 runZshCommand()
的示例,该函数执行 echo 'Hello, World!'
命令,并打印输出结果。您可以根据需要替换为您想要执行的任何 zsh 命令。
领取专属 10元无门槛券
手把手带您无忧上云