Bash에서 명령 출력을 변수로 저장하는 방법은 무엇입니까? PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Bash에서 명령 출력을 변수로 저장하는 방법은 무엇입니까?

개요

bash 스크립트에서 명령의 출력을 변수에 할당하는 것은 명령의 출력을 저장하고 나중에 사용함으로써 편리할 수 있습니다.

이 짧은 가이드에서는 명령의 출력을 Bash에서 변수로 저장하는 방법을 살펴보겠습니다.

변수를 설정하는 기본 사항

명령의 출력을 변수로 저장하는 것은 다음을 통해 달성됩니다. 명령 대체. 명령 대체는 명령을 실행하는 래퍼입니다. 서브쉘 환경, 그리고 래핑된 명령을 명령이 실행된 환경의 표준 출력으로 바꿉니다. 이 출력은 참조 변수에 연결된 경우 나중에 참조할 수 있습니다!

명령 대체는 백틱 또는 괄호가 있는 달러 기호를 통해 수행할 수 있습니다.

`command`

$(command)

여부에 대한 논쟁이 있다. '명령' (백틱) 또는 $(명령) (달러 기호 및 괄호)는 "모범 사례"로 사용해야 합니다. $(command) 중첩에서 잘 작동하고 경우에 따라 가독성이 향상되지만 다음 예제에서는 두 구문 중 하나를 사용할 수 있습니다.

즉, 명령의 출력을 Bash의 변수에 할당하는 것은 다음과 같이 쉽습니다.

VARIABLE=$(command)
echo "${VARIABLE}"

달리는 ${variable} 로 알려져있다 매개 변수 확장, 참조 변수와 관련된 값을 평가하고 가져오는 데 사용됩니다.

이제 출력 색상을 변경하는 명령에 대한 변수를 설정하는 간단한 예를 살펴보겠습니다.

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

스니펫에서는 tput 명령을 실행하고 해당 명령의 반환 값을 할당하여 다채로운 텍스트를 인쇄합니다. 그만큼 setaf 전경색을 변경하고 3(녹색) 및 9(주황색)는 색상 코드입니다.

이제 다른 명령에 대한 변수를 설정하기 위한 여러 조건이 포함된 다른 예제로 넘어갈 것입니다.

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

위 스크립트에서 whoami 명령은 현재 사용자의 사용자 이름을 반환합니다. 그만큼 uname -a 시스템 정보를 반환하고 date 현재 시간과 날짜를 반환합니다.

참고 : 단일 중첩 호출에 여러 명령을 추가하여 변수 할당을 연결할 수 있습니다. 그만큼 CREATE 변수는 다음의 출력을 포함합니다. touch 명령은 차례로 파일을 만들고 파일 이름을 출력으로 설정합니다. date +"%d%m%Y 명령.

모범 사례, 업계에서 인정하는 표준 및 포함된 치트 시트가 포함된 Git 학습에 대한 실습 가이드를 확인하십시오. 인터넷 검색 Git 명령을 중지하고 실제로 배움 이것!

마지막으로 추가합니다. multiline 백슬래시를 추가하여 명령 변수 할당 개념 () 사이 ls 명령 -l 플래그를 사용하여 텍스트 파일만 표시 *.txt. 백슬래시는 다음 문자를 해석하지 않도록 쉘에 알리는 이스케이프 문자입니다.

. echo 명령에 추가했습니다. -e 특수 문자를 사용하는 플래그, 즉, n (newline), 새 줄에 출력을 인쇄합니다.

스크립트를 실행한 후 다음 결과를 얻습니다.

$ ./variable.sh

결론

이 짧은 가이드에서는 Bash에서 명령의 출력을 변수로 설정하는 방법을 살펴보았습니다. 에 대한 구문의 차이점을 살펴보았습니다. 명령 대체, 의 가독성 향상에 주목 $(command) 백틱 기반 대체를 통해. 그런 다음 단순 할당과 연결/중첩 출력 할당의 몇 가지 예를 살펴보았습니다.

타임 스탬프 :

더보기 스택카부스