Il < filename
la sintassi è una funzionalità fornita dalla shell, non qualcosa con cui i programmi stessi si occupano mai.
Il modo corretto per gestirlo è costruire un FileHandle
per la lettura da dumpFile.sql
e quindi imposta quel FileHandle
come standardInput
proprietà del Process
.
Come nota a margine, non so perché stai usando /usr/bin/env
come percorso di avvio, poiché non ti affidi alla ricerca PATH o all'impostazione di variabili di 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()