sql >> Base de Datos >  >> RDS >> Mysql

Cómo ejecutar un proceso en Swift 3.0 con entrada estándar

El < filename la sintaxis es una función proporcionada por el shell, no algo con lo que los propios programas se ocupen.

La forma correcta de manejar esto es construir un FileHandle para leer desde dumpFile.sql y luego configure ese FileHandle como standardInput propiedad del Process .

Como nota al margen, no sé por qué estás usando /usr/bin/env como su ruta de inicio, ya que no depende de la búsqueda de RUTA ni configura ninguna variable de entorno.

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()