Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So führen Sie einen Prozess in Swift 3.0 mit Standardeingabe aus

Der < filename Syntax ist eine Funktion, die von der Shell bereitgestellt wird, nicht etwas, mit dem Programme selbst jemals zu tun haben.

Der richtige Weg, dies zu handhaben, besteht darin, ein FileHandle zu konstruieren zum Lesen aus dumpFile.sql und dann diesen FileHandle setzen als standardInput Eigenschaft des Process .

Nebenbei bemerkt, ich weiß nicht, warum Sie /usr/bin/env verwenden als Startpfad, da Sie sich nicht auf die PATH-Suche verlassen oder Umgebungsvariablen festlegen.

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