【发布时间】:2014-12-15 14:29:08
【问题描述】:
编辑:所以最终我最终在这里做的是直接在 mysql.expect 脚本中运行它。任何需要更新的变量都将通过用于启动 mysql.expect 的标准 bash 脚本中的 sed 替换。
我有一个运行期望的 bash 脚本,并自动执行 MySQL 安装过程,如您所见 here。在这个脚本中需要调用expect的原因是为了获取本地bash变量,所以我不能只通过expect运行它,而是需要按如下方式调用它:
if [ catch "spawn /bin/bash ./mysql.sh" error ] {
puts "Could not spawn mysql.sh $error"
}
我知道这行得通,因为我称之为“test.sh”的另一个脚本执行以下操作:
#!/bin/bash
source ./myvars.rc
echo "CONNECTED" >> "./out.html"
echo "$MYVARIABLE" >> "./out.html"
这工作正常,变量已正确添加到 out.html。 mysql.sh 脚本在直接调用时有效,但不是通过expect,并且没有错误。有任何想法吗?谢谢。
【问题讨论】:
-
当你通过expect运行这个脚本时,mysql_installation的衍生进程是否开始运行?还是没找到线索,然后加上
-dflag 和expect 看看调试信息。
标签: linux bash scripting automation expect