HOWTO · Bash
Bash 스크립트의 eval 명령
Bash 스크립트에서 eval 명령 사용을 설명하는 튜토리얼입니다.
이 문서는 Bash 스크립트에서 문자열을 명령으로 사용하는 방법에 관한 것입니다. 이를 위해 eval 명령이 사용됩니다.
Bash 스크립트의 평가 명령
변수 또는 입력 값(예:)을 사용하여 문자열을 만들고 마지막에 명령으로 실행해야 하는 특정 Bash 스크립트가 있습니다. 이러한 경우 eval이 솔루션입니다.
Bash에서 eval 명령은 쉘 명령과 유사한 매개변수를 평가합니다. 인수는 문자열로 결합되어 쉘 명령으로 전송된 다음 명령을 실행합니다.
현재 쉘에서 eval은 명령을 실행합니다. 이 명령은 특정 연산자나 예약어가 있는 명령을 실행할 때 편리합니다.
이 명령은 스크립트가 실행될 때까지 변수 이름을 알 수 없는 모든 스크립트에서 사용할 수도 있습니다. 이 가이드는 Linux 사용자가 이 명령을 사용하는 방법을 이해하는 데 도움이 됩니다.
통사론:
eval [arguments...]
인수는 문자열 리터럴로 결합된 이 명령에 전달된 다음 실행을 위해 Bash로 전송됩니다. 이 명령은 명령 실행 후 종료 상태를 반환합니다.
이 명령에 인수가 전달되지 않거나 null이 전달되면 종료 상태로 0을 반환합니다.
eval을 사용하여 파일의 라인 수 계산
몇 줄의 텍스트가 포함된 sample.txt 파일이 있다고 가정합니다. 해당 파일의 줄 수를 계산해야 하는 경우 wc -l 명령을 사용할 수 있습니다.
eval 명령을 사용하여 이 작업을 수행합니다. 명령은 다음과 같습니다.
myComm="wc -l sample.txt"
eval $myComm
이것의 출력을 살펴보자.

eval을 사용하여 산술 연산 풀기
일부 산술 연산을 수행해야 한다고 가정합니다. eval 명령을 사용하여 이를 수행할 수 있습니다.
이를 위해 Bash 스크립트를 생성합니다.
#!/bin/bash
a=4
b=5
comm1="`expr $a + $b`"
comm2="echo"
eval $comm2 $comm1
이 스크립트에서 두 개의 명령을 포함하는 두 개의 변수를 만들었습니다. 하나는 산술 연산을 수행하기 위한 것이고 다른 하나는 echo 명령을 위한 것입니다. 마지막 줄에서 이 두 변수를 eval 명령에 대한 인수로 전달했습니다.
eval은 이 두 변수를 결합하여 아래와 같은 명령을 구성합니다.
echo 'expr 4 + 5'
이 스크립트를 실행하면 다음과 같은 결과가 표시됩니다.

eval을 사용하여 변수 값 인쇄
다음 예제에서는 다른 변수를 포함하는 변수의 값을 인쇄합니다.
#!/bin/bash
str1="my script"
str2=str1
comm="echo"
eval $comm \${$str2}
위 스크립트의 출력은 다음과 같습니다.

eval을 사용하여 숫자 합계 인쇄
다음 예제에서는 스크립트에서 for 루프를 사용하여 1에서 4까지의 숫자 합계를 인쇄합니다. 그런 다음 eval 명령을 사용하여 해당 합계를 인쇄합니다.
이 문제의 스크립트는 다음과 같습니다.
#!/bin/bash
sum=0
for n in {1..4}
do
sum=$(($sum+$n))
done
comm="echo 'The result of sum from 1-4 is: '"
eval $comm $sum
위 스크립트의 출력은 다음과 같습니다.

결론
eval 명령은 Bash 명령을 문자열로 표현하여 실행할 수 있습니다. 이 학습에서 eval 명령은 여러 Bash 기본 제공 작업을 실행하고 일련의 변수를 생성합니다.
이 강의를 읽은 후 사용자는 eval 명령을 더 잘 이해하고 다양한 응용 프로그램에 활용할 수 있습니다.