De < filename
syntaxis is een functie die door de shell wordt geboden, niet iets waar programma's zelf ooit mee te maken hebben.
De juiste manier om hiermee om te gaan, is door een FileHandle
te maken voor het lezen van dumpFile.sql
en stel vervolgens die FileHandle
. in als de standardInput
eigenschap van het Process
.
Even terzijde, ik weet niet waarom je /usr/bin/env
gebruikt als uw startpad, aangezien u niet vertrouwt op PATH-lookup of omgevingsvariabelen instelt.
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()