我想使用这个 json 文件来获取 jenkins 版本和 java 版本号以包含我的script.sh
文件。我们该怎么做呢?
我尝试过{{user `java_version`}}
,但没有成功。
variable.json
文件{ "region": "us-east-1", "jenkins_version": "2.263.4", "java_version": "1.8.0" }
script.sh
文件#!/bin/bash sudo yum update -y sudo yum install wget -y sudo yum install java-{{user `java_version`}}-openjdk-devel -y sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key sudo yum install -y jenkins-{{user `java_version`}} sudo systemctl start jenkins sudo systemctl status jenkins #Get auth password from jenkins master echo "authpwd="$(sudo cat /var/lib/jenkins/secrets/initialAdminPassword)
答案1
看一下jq
命令,它是一个命令行 json 解析器。您可以拉出任何您想要的字段。
https://www.systutorials.com/docs/linux/man/1-jq/
例如,这将返回 java_version 号。
cat variable.json | jq .java_version
如果您更喜欢使用核心命令,这样您就不必安装任何东西,您可以使用此命令。
cat input | grep java_version | awk '{print $NF}'
在有人说你不必输入 grep 之前,上面命令的较短版本。
grep java_version variable.json | awk '{print $NF}'
编辑:另一种选择是。
sudo yum install -y jenkins-$(grep java_version variable.json | awk '{print $NF}' | sed 's/"//g')-openjdk