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
실제로는 문제가 되지 않습니다.