You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins中自动通过imx-setup-release.sh的EULA确认?

解决Yocto构建脚本imx-setup-release.sh的EULA自动确认问题

问题分析

运行. ./imx-setup-release.sh -b build_dir时,脚本会先通过分页工具(如less)展示EULA协议,需要先按q退出分页,再输入y完成确认。直接用yes | . ./imx-setup-release.sh无效,因为分页工具默认从终端读取输入,而非标准输入,yes输出的y无法被分页工具识别,导致脚本一直卡在分页界面。

可行解决方案

方案1:使用expect脚本(最可靠)

expect专门用于处理交互式命令场景,能精准匹配脚本输出并发送对应输入:

expect -c '
spawn . ./imx-setup-release.sh -b build_dir
expect {
    # 匹配分页退出提示,发送q并继续等待
    "Press Q to exit" { send "q\r"; exp_continue }
    # 匹配确认提示,发送y
    "Do you accept the EULA you just read? (y/n)" { send "y\r" }
}
expect eof
'

如果系统没有expect,需要先安装(如Debian/Ubuntu用sudo apt install expect,RHEL/CentOS用sudo yum install expect)。

方案2:使用printf结合管道(部分场景可用)

如果脚本的分页工具支持从标准输入读取命令,可以尝试用printf依次发送q和y:

printf "q\ny\n" | . ./imx-setup-release.sh -b build_dir

注意:此方法仅在分页工具(如less)未强制绑定终端输入时有效,若脚本里的分页命令加了-f或其他强制终端的参数,该方法会失效。

补充说明

  • 不要用yes命令:它只会持续输出y,无法处理分页工具需要的q输入,导致脚本无限等待终端输入。
  • 若在Jenkins中执行,确保构建环境已安装expect(或确认方案2可行),直接将对应命令写入Jenkins构建步骤即可。

内容的提问来源于stack exchange,提问作者RhoAies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:00:18