명령 출력을 변수로 설정 [중복]

명령 출력을 변수로 설정 [중복]

head -15 textfile.txt다음과 같은 명령 $X에서 사용하기 위해 출력을 변수에 어떻게 넣을 수 있습니까 ?if

 if $X = 'disabled' then

?

답변1

x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
    echo "We are disabled"
fi

일반적으로 명령의 출력을 쉘 변수에 캡처하려면 다음 형식을 사용하십시오 variable="$(command args ...)". 이 variable=부분은 숙제입니다. 이 $(...)부분은 명령 대체입니다.

또한 쉘은 if형식의 명령문을 실행하지 않는다는 점에 유의하십시오 if $X = 'disabled'. 쉘은 명령이 뒤따를 것으로 예상 if하고 쉘은 명령의 반환 코드를 평가합니다. 위의 예에서 test내가 실행한 명령은 test ...또는 로 작성할 수 있습니다 [ ... ].

많은 사람들은 쉘 스크립트에서 소문자 변수를 사용하는 것이 가장 좋은 방법이라고 믿습니다. 이는 시스템 정의 변수가 대문자이고 실수로 덮어쓰는 것을 원하지 않기 때문입니다. 반면에 시스템 변수는 호출되지 않으므로 X실제로는 문제가 되지 않습니다.

관련 정보