我有一个试图安装垃圾箱的脚本。
除了.bin打开更多的EULA之外,一切正常。 在脚本再次开始之前,您必须从此更多实例中手动ctrl c并自行完成安装。
因为更多的是逃避shell,脚本在打开后不会知道要运行什么。 有没有办法期望找到这个并防止它?
没有自定义标志可以自动接受eula。
我到处寻找解决方案,但似乎没有任何效果。
命令本身很简单但在heredoc之前被阻止
/bin/bash gp.bin << AUTO
REST
OF
PARAMETERS
AUTO
答案 0 :(得分:3)
您应该能够使用“q”退出更多,但这只能以交互方式工作。
如果安装脚本编写得很好,那么您可以使用除了更多内容之外的其他内容作为寻呼机。尝试:
export PAGER=cat
看看行为是否发生了变化。
如果你仍然被卡住,你可能需要查看Expect而不是heredoc。
答案 1 :(得分:2)
expect
可以发送Ctrl-C:http://expect.sourceforge.net/FAQ.html#q54
例如:
#!/usr/bin/env expect
spawn "/vendor/install/script.sh"
expect "EULA blah blah blah"
send \003
#rest of expect script...
但请尝试已建议的PAGER
环境变量。