Сценарий Swift не может открыть интерактивную оболочку - PullRequest
0 голосов
/ 22 февраля 2020

Сценарий swift просто открывается с /bin/bash по Process

let process = Process()
process.executableURL = URL(fileURLWithPath:"/bin/bash")
process.environment = ProcessInfo.processInfo.environment
process.standardInput =  FileHandle.standardInput
process.standardOutput = FileHandle.standardOutput
process.standardError = FileHandle.standardError
process.launch()
process.waitUntilExit()

При запуске из отладки Xcode он просто ведет себя как ожидалось:

bash-3.2$ 

Отображение приглашения оболочки, и может взаимодействовать через область журнала XCode.

Но когда я бегу в Терминале, он просто ничего не показывает и не может вводить команду (текст может быть введен, но ничего не происходит при возврате, даже ctl+D).

$ ./my_executable
ls
adf
asjflasjfk

Но если я ввожу команду через стандартный ввод, она будет работать.

$ echo whoami | ./my_executable
user1

Почему ввод терминала не является стандартным вводом и почему он может работать в Xcode?

...