PATH를 사용하여 명령줄 변수 만들기

PATH를 사용하여 명령줄 변수 만들기

저는 네트워크 전문가이기 때문에 이에 대한 도움이 필요하므로 질문하기 전에 제가 하려는 일이 무엇인지 설명하겠습니다.

다음을 수행하는 배치 스크립트를 만들고 있습니다.

  • 외부 서버로부터 GET 요청(json 파일), 데이터 수신, 로컬에 .json으로 저장
  • JQ를 사용하여 json 탐색결과[0].제목
  • 컬 요청의 매개변수로 "제목" 사용

일단 로컬에 파일이 있습니다. JQ를 사용하여 객체의 데이터를 찾습니다.

cat file.json | jq '.results[0].title' > $1 && curl -i -H "Accept: application/html" -H "Content-Type: application/html" -X GET http://example.com/test/$1 > test.txt

파이프라인 명령에서 임시로 사용하기 위해 명령줄 "$1"에 로컬 변수를 설정할 수 있습니까?

나는 여기서 나온 걸까?

답변1

일반적으로 특별한 의미(스크립트/함수/등에 전달되는 첫 번째 인수)가 있지만 $1실제로 명령의 출력을 변수에 저장할 수 있습니다.

title=$(jq -r '.results[0].title' file.json)
curl -i -H "Accept: application/html" -H "Content-Type: application/html" -X GET http://example.com/test/"$title" > test.txt

첫 번째 부분에서는 명령을 실행 jq -r '.results[0].title' file.json하고 출력을 stdout변수에 저장합니다 title. 그런 다음 명령을 실행 curl하고 변수를 titleURL의 일부로 확장합니다.

관련 정보