Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como executar um processo no Swift 3.0 com entrada padrão


O < filename sintaxe é um recurso fornecido pelo shell, não algo com o qual os próprios programas lidam.

A maneira correta de lidar com isso é construir um FileHandle para leitura de dumpFile.sql e, em seguida, defina esse FileHandle como o standardInput propriedade do Process .

Como observação lateral, não sei por que você está usando /usr/bin/env como seu caminho de inicialização, já que você não está confiando na pesquisa PATH ou definindo nenhuma variável de ambiente.
let input = try FileHandle(forReadingFrom: URL(fileURLWithPath: "dumpFile.sql"))
let task = Process()
task.launchPath = "/usr/bin/mysql"
task.arguments = ["-h", "theHost", "-P", "3306", "-u", "root", "-pTheInlinePassword", "example_database"]
task.standardInput = input
task.launch()