如何从 expect/TCL 脚本中的转储文件创建 MySQL 数据库?
How to create a MySQL database from dump file in expect/TCL script?
我只想在 expect 脚本中执行此 bash 命令:
mysql -u root -h localhost -proot dbTest < temp.sql
我在开头添加了 spawn
,但它不起作用。我认为“<”符号没有任何意义!
谁能帮我解决这个问题?
人们倾向于使用sqldump 和mysqldump。我喜欢下面 link 中的引述 rubbish
with phpmyadmin:
how to import a very large query over phpmyadmin?
关于 cron
或 expect
...
我知道 cron 在处理日期时遇到问题,而且通常在命令行上起作用的东西必须放在 bash 脚本中才能更轻松地工作。然后 cron 运行 .sh 脚本与嵌入字符串。
这也是你 2 小时前的重复问题。
spawn
不支持 <
方向,但你可以这样做:
spawn sh -c "mysql -u root -h localhost -proot dbTest < temp.sql"
似乎您想以非交互方式 运行 mysql
,因此您也可以使用 Expect
的 system
命令:
system "mysql -u root -h localhost -proot dbTest < temp.sql"
或Tcl
的exec
命令:
exec mysql -u root -h localhost -proot dbTest < temp.sql >@ stdout 2>@ stderr
您可能需要将整个 system
或 exec
命令放在 catch
块中,以防 mysql
失败:
catch {system "mysql ..."} catched
# or
catch {exec mysql ...} catched
我现在找到了解决这个问题的方法。我避免了“<”符号,所以我们可以改用这个命令:
spawn mysql -u root -h localhost -proot dbTest -Bse "source temp.sql"
我只想在 expect 脚本中执行此 bash 命令:
mysql -u root -h localhost -proot dbTest < temp.sql
我在开头添加了 spawn
,但它不起作用。我认为“<”符号没有任何意义!
谁能帮我解决这个问题?
人们倾向于使用sqldump 和mysqldump。我喜欢下面 link 中的引述 rubbish
with phpmyadmin:
how to import a very large query over phpmyadmin?
关于 cron
或 expect
...
我知道 cron 在处理日期时遇到问题,而且通常在命令行上起作用的东西必须放在 bash 脚本中才能更轻松地工作。然后 cron 运行 .sh 脚本与嵌入字符串。
这也是你 2 小时前的重复问题。
spawn
不支持 <
方向,但你可以这样做:
spawn sh -c "mysql -u root -h localhost -proot dbTest < temp.sql"
似乎您想以非交互方式 运行 mysql
,因此您也可以使用 Expect
的 system
命令:
system "mysql -u root -h localhost -proot dbTest < temp.sql"
或Tcl
的exec
命令:
exec mysql -u root -h localhost -proot dbTest < temp.sql >@ stdout 2>@ stderr
您可能需要将整个 system
或 exec
命令放在 catch
块中,以防 mysql
失败:
catch {system "mysql ..."} catched
# or
catch {exec mysql ...} catched
我现在找到了解决这个问题的方法。我避免了“<”符号,所以我们可以改用这个命令:
spawn mysql -u root -h localhost -proot dbTest -Bse "source temp.sql"