gpt4 book ai didi

linux - 期望嵌套的 shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:45 26 4
gpt4 key购买 nike

我有一个 shell 脚本 batch_wrapper.sh,它接受用户输入并调用另一个脚本 batch.sh。这两个脚本工作得很好。

现在,我创建了一个期望脚本 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

批处理.sh

#!/bin/bash

echo "Inside batch"
echo "exiting batch"

最佳答案

你的脚本随后立即退出,因为没有什么可做的了。

您可以在 expect 脚本的最后一行添加 interactexpect 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

关于linux - 期望嵌套的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com