
다음과 같은 명령 에서 사용하기 위해 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
여기서는 실제 문제가 되지 않습니다.