Рассмотрим следующий скрипт Swift (Shell.swift
):
#!/usr/bin/swift
import Foundation
func shell(_ command: String) {
let task = Process()
task.launchPath = "/bin/zsh"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8) ?? ""
print(output)
}
Если я добавлю в него эту строку (в конце):
shell("date")
... и вызвать его из моего терминала следующим образом:
$ ./Shell.swift
Вывод:
Sun Jan 26 11:35:52 CET 2020
Если я добавлю эта строка:
shell("echo $LANG")
Вывод:
en_US.UTF-8
Работает, как и ожидалось.
Теперь, если Я добавляю эти строки:
shell("export MY_VAR=123")
shell("echo $MY_VAR") ?? // Nothing is printed out
Есть ли способ сделать это?
Как установить переменную окружения с помощью Zsh из скрипта Swift?