Bash expect脚本中的标准数据流重定向
我有以下bash脚本,它包装了一个expect脚本(在这里以文档形式): 所以有些事情不对劲 经过一些尝试和错误,我发现stdout流重定向Bash expect脚本中的标准数据流重定向,bash,redirect,expect,Bash,Redirect,Expect,我有以下bash脚本,它包装了一个expect脚本(在这里以文档形式): 所以有些事情不对劲 经过一些尝试和错误,我发现stdout流重定向>somebackupfile.sql是罪魁祸首——一旦删除此重定向,脚本就会工作 所以我想知道:如何在expect脚本中使用流重定向?未经测试,但这应该可以工作: expect <<- DONE set timeout -1 spawn mysqldump --all-databases --user=root --password -
>somebackupfile.sql
是罪魁祸首——一旦删除此重定向,脚本就会工作
所以我想知道:如何在expect脚本中使用流重定向?未经测试,但这应该可以工作:
expect <<- DONE
set timeout -1
spawn mysqldump --all-databases --user=root --password --protocol=TCP --host=localhost --verbose
expect "*?asswor?:*"
send -- "$PASSWORD_MYSQL_ROOT\r"
log_file somebackupfile.sql
expect eof
DONE
请期待,看看我对的回答是否有帮助。
spawn mysqldump --all-databases --user=root --password --protocol=TCP --host=localhost --verbose > somebackupfile.sql
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
send: spawn id exp4 not open
while executing
"send -- "root\r""
expect <<- DONE
set timeout -1
spawn mysqldump --all-databases --user=root --password --protocol=TCP --host=localhost --verbose
expect "*?asswor?:*"
send -- "$PASSWORD_MYSQL_ROOT\r"
log_file somebackupfile.sql
expect eof
DONE