Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment exécuter un processus dans Swift 3.0 avec une entrée standard

Le < filename La syntaxe est une fonctionnalité fournie par le shell, et non quelque chose que les programmes eux-mêmes traitent.

La bonne façon de gérer cela est de construire un FileHandle pour lire depuis dumpFile.sql puis définissez ce FileHandle comme standardInput propriété du Process .

En passant, je ne sais pas pourquoi vous utilisez /usr/bin/env comme chemin de lancement, puisque vous ne comptez pas sur la recherche PATH ni sur la définition de variables d'environnement.

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