Linux 명령의 출력을 변수에 할당하는 방법


명령을 실행하면 일종의 출력이 생성됩니다. 프로그램의 결과가 프로그램 실행 세부 사항의 상태/오류 메시지를 생성한다고 가정합니다. 경우에 따라 나중에 작업에 사용할 변수에 명령 출력을 저장할 수 있습니다.

이 포스트에서 우리는 쉘 명령의 출력을 변수에 할당하는 다양한 방법을 검토 할 것입니다. 특히 쉘 스크립팅 목적에 유용합니다.

명령의 출력을 변수에 저장하려면 아래 형식으로 셸 명령 대체 기능을 사용할 수 있습니다.

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

다음은 명령 대체를 사용하는 몇 가지 예입니다.

이 첫 번째 예에서는 CURRENT_USERS user 변수에 who (누가 시스템에 로그온했는지 표시) 명령의 값을 저장합니다.

$ CURRENT_USERS=$(who)

그런 다음 다음과 같이 echo 명령을 사용하여 표시된 문장에서 변수를 사용할 수 있습니다.

$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

위의 명령에서 : 플래그 -e 는 사용 된 모든 이스케이프 시퀀스 (예 : 줄 바꿈의 경우 \\ n )를 해석 함을 의미합니다. 시간과 메모리 낭비를 방지하려면 다음과 같이 echo 명령 내에서 명령 대체를 수행하십시오.

$ echo -e "The following users are logged on the system:\n\n $(who)"

다음으로 두 번째 양식을 사용하여 개념을 설명합니다. 현재 작업 디렉터리의 총 파일 수를 FILES 라는 변수에 저장하고 나중에 다음과 같이 에코 할 수 있습니다.

$ FILES=`sudo find . -type f -print | wc -l`
$ echo "There are $FILES in the current working directory."

지금까지이 기사에서는 쉘 명령의 출력을 변수에 할당하는 방법을 설명했습니다. 아래 피드백 섹션을 통해이 게시물에 대한 의견을 추가 할 수 있습니다.