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

Bash脚本读取插件文件仅安装首个Jenkins插件的问题及修复

Jenkins插件安装脚本仅安装第一个插件的修复方案

问题原因

jenkins-cli.jar的命令默认会读取标准输入(stdin),而你的while循环正是从标准输入读取插件列表文件的内容。当第一个install-plugin命令执行时,它会抢占整个输入流,导致循环无法读取后续的插件行,最终只安装第一个插件。

修复方法

有两种可靠的解决方式:

方式1:添加-no-interactive参数

给所有jenkins-cli命令加上-no-interactive参数,强制它不读取标准输入:

#!/bin/bash

JENKINS_URL=http://localhost:8080
PLUGINS_FILE=$1

while IFS=':' read -r plugin_name plugin_version; do
  java -jar jenkins-cli.jar -s $JENKINS_URL -auth admin:admin -no-interactive install-plugin "${plugin_name}:${plugin_version}"
done < "$PLUGINS_FILE"

java -jar jenkins-cli.jar -s $JENKINS_URL -auth admin:admin -no-interactive safe-restart

方式2:重定向输入到/dev/null

将每个jenkins-cli命令的输入重定向到/dev/null,避免它占用循环的输入流:

#!/bin/bash

JENKINS_URL=http://localhost:8080
PLUGINS_FILE=$1

while IFS=':' read -r plugin_name plugin_version; do
  java -jar jenkins-cli.jar -s $JENKINS_URL -auth admin:admin install-plugin "${plugin_name}:${plugin_version}" < /dev/null
done < "$PLUGINS_FILE"

java -jar jenkins-cli.jar -s $JENKINS_URL -auth admin:admin safe-restart < /dev/null

验证

执行修复后的脚本:

./install-plugins.sh plugins.txt

此时所有列出的插件都会被依次安装,最后Jenkins会执行安全重启。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:30:37