获得了我希望处理的许可协议。 我有以下代码
{
/usr/bin/expect << EOD
log_user 0
set timeout 20
spawn -noecho "${filename}" > /dev/null 2>&1
stty -echo;
expect {
"Press Enter to view the End User License Agreement" {
send "\r"
exp_continue
}
"More" {
send " "
exp_continue
}
"Do you accept the End User License Agreement?" {
log_user 0
send "y\r"
log_user 0
}
}
interact
expect eof
EOD
}
运行这个我得到以下输出:
y
它工作正常,但我希望从期望中得不到任何输出。
我的目标是不回应send命令。
正如您所看到的,我已经尝试使用log_user
和stty
来完成此操作,但没有运气。
在代码中使用这些额外的位之前,我可以在屏幕上看到整个许可文本。使用log_user 0
,现在不再显示了。
但我仍然从最后一个发送命令获得y
,我无法在屏幕上回显。
有什么建议吗? 谢谢
答案 0 :(得分:0)
stty -echo
本身足以隐藏输出。但是,我不确定这有什么不对。
无论如何,试试这个。
"Do you accept the End User License Agreement?" {
send "y\r"
log_user 0
expect *
}
log_user 1
send \r; # This is optional
interact