我有一个shell脚本batch_wrapper.sh,它接受用户输入并调用另一个脚本batch.sh。 这两个脚本完美无缺。
现在,我创建了一个expect脚本test.sh,它调用batch_wrapper.sh并提供输入参数。 但是,由于某种原因,我没有调用batch.sh脚本,而是从expect脚本中生成batch_wrapper.sh。我该如何解决这个问题?
示例期望脚本是:
#!/usr/bin/expect
set timeout 2000
spawn "./batch_wrapper.sh"
expect "username" {send "Vikas\r" }
示例Shell脚本是:
batch_wrapper.sh
#!/bin/bash
echo "enter username"
read name
echo "your name is $name"
./batch.sh
batch.sh
#!/bin/bash
echo "Inside batch"
echo "exiting batch"
答案 0 :(得分:2)
之后您的脚本会立即退出,因为没有什么可做的。
您可以添加interact
或expect eof {}
作为期望脚本中的最后一行,以使其处理剩余的输出:
$ cat lol.expect
#!/usr/bin/expect
set timeout 2000
spawn "./batch_wrapper.sh"
expect "username" {send "Vikas\r" }
expect eof {}
$ expect -f lol.expect
spawn ./batch_wrapper.sh
enter username
Vikas
your name is Vikas
Inside batch
exiting batch