在expect脚本中找不到mysql命令

时间:2016-12-14 09:12:03

标签: bash ubuntu expect

我写了一个期望脚本,它读取脚本文件并远程执行脚本。

1481701708951_migration.sh(bash脚本)

此脚本选择应执行DDL语句的数据库列表。

db="testdb"
username="root"
password=""
mysql="mysql -u root $db"
$mysql -e "select * from dblist" | grep -v SCHEMANAME > tmp.txt
echo "Migration started..." 
while read line
do
mysql="mysql -u root $line"
$mysql -e "create table test(id int)"

done < tmp.txt
echo "Migration over..."

期望脚本

#!/usr/bin/expect -f

set fh [open 1481701708951_migration.sh r]
set contents [read $fh]
close $fh
spawn ssh sampleusername@192.168.1.1 "bash -c '$contents'"
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "samplepassword\r"
}
}

过去工作正常。但现在,它正在抛出错误bash: line 4: mysql: command not found。有人可以帮我解决这个问题吗?

感谢。

0 个答案:

没有答案