spawn unterstützt den < nicht Richtung, aber Sie können so vorgehen:
spawn sh -c "mysql -u root -h localhost -proot dbTest < temp.sql"
Anscheinend möchten Sie mysql ausführen auf nicht-interaktive Weise, sodass Sie auch Expect verwenden können 's system Befehl:
system "mysql -u root -h localhost -proot dbTest < temp.sql"
oder Tcl 's exec Befehl:
exec mysql -u root -h localhost -proot dbTest < temp.sql >@ stdout 2>@ stderr
Möglicherweise müssen Sie das gesamte system einfügen oder exec Befehl in einem catch Block für den Fall, dass mysql schlägt fehl:
catch {system "mysql ..."} catched
# or
catch {exec mysql ...} catched