이 json 파일을 사용하여 내 파일을 포함할 젠킨스 버전과 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