expect命令怎么用?

我有这样一段交互:

root@ffdf50d37cdd:/# dotnet /miner/Miner.dll /rpc
ant>open wallet /miner_data/wallets/1.db3
password:*
[07:37:21] StartMine

上面交互过程大概是:
1. 使用dotnet命令启动Miner.dll
2. 使用open wallet命令打开一个文件/miner_data/wallets/1.db3
3. 输入密码
4. 程序正常运行后马上输出StartMine等日志;如果密码错误,出现提示failed to open file "/miner_data/wallets/1.db3"
5. 步骤2、3也可能出现异常信息error,此时从步骤2重新执行即可。

由于我要把这段程序放在docker生产环境中运行,所以要把这段人工交互过程改成程序自动交互的。初步研究后发现expect命令有这个功能,于是写了下面的一段代码test.sh

#!/usr/bin/expect

expect -c "
  spawn dotnet /miner/Miner.dll /rpc
  expect "ant\>"
  send "open wallet /miner_data/wallets/1.db3\r"
  expect "password:"
  send "1\r"
"

尝试运行这段代码,却发现结果不对:

root@ffdf50d37cdd:/# sh a.sh
spawn dotnet /miner/Miner.dll /rpc
ant>couldn't read file "wallet": no such file or directory
root@ffdf50d37cdd:/# 

请教各位看官,这段shell脚本哪里不对呢?要完成这个任务应该怎么写shell脚本呢?欢迎各位不吝赐教留言或者给我邮件cn.binbin@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值