- 此问题在此处已有答案**:
While loop stops reading after the first line in Bash(5个答案)
21小时前关门了。
我有一个叫做install-plugins.sh
的脚本,用来在jenkins中安装插件。
#!/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}"
done < "$PLUGINS_FILE"
java -jar jenkins-cli.jar -s $JENKINS_URL -auth admin:admin safe-restart
我还有一个包含插件名称和版本的txt文件
run-condition:1.5
blueocean-dashboard:1.27.1
blueocean-core-js:1.27.1
每当我运行脚本时,第一个插件只被安装,而下面的其他插件没有安装。我该如何解决这个问题?
./install-plugins.sh plugins.txt
Installing run-condition:1.5 from update center
1条答案
按热度按时间kpbwa7wx1#
你的
java
会消耗掉剩下的STDIN。由
while read
读取,并且由
java
读取。一个简单的解决方案是给予
java
一个自己的STDIN来咀嚼: