この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
何もインストールする必要がないようにcoreコマンドを使用したい場合は、このコマンドを使用できます。
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