我试图使用expect来自动接受在--more - 。
中提示的EULA#!/usr/bin/expect
spawn "./greenplum-perfmon-web-4.1.2.0-build-2-RHEL5-x86_64.bin"
expect "--More--"
send "q"
expect "*****"
send "yes"
expect "*****"
send ""
expect "*****"
send "yes"
这不起作用,我不知道为什么。脚本总是在--More--提示符处停止,第二个我单击ANYTHING它会立即处理脚本的其余部分。
我试过
expect -exact "--More--"
和
expect "the Customer"
(what is written above the --More--)
答案 0 :(得分:2)
尝试将$MORE
设置为类似-99999999
的内容,以便more
提示永远不会显示。
答案 1 :(得分:0)
完全避免期待的解决方案:
您可以通过将PAGER
环境变量设置为其他程序并使用yes
程序来完全避免此问题。以下关闭是,并将尽可能多的yes\n
字符串发送到安装程序中:
PAGER=cat yes yes | ./greenplum-perfmon-web-4.1.2.0-build-2-RHEL5-x86_64.bin
如果这看起来很奇怪,它几乎等同于以下内容:
export PAGER=cat
yes yes | ./greenplum-perfmon-web-4.1.2.0-build-2-RHEL5-x86_64.bin
不同之处在于,对于单行,PAGER
仅针对该一个命令设置,而不是针对之后发生的任何事情。