쉘스크립트에서 if문요...

toy의 이미지

if [ $VAR = "i am student" ]
then
echo "I am student"
fi

에서요.. VAR가 i am student로 세팅되있는데요.
저구문에서 too many argument에러가 납니다.
왜 그런지 모르겠어요...

tangos의 이미지

if [ "$VAR" = "i am student" ]
로 고쳐보세요

$VAR 를 ""로 감싸기.

=================
if [ $VAR = "i am student" ]
then
echo "I am student"
fi

에서요.. VAR가 i am student로 세팅되있는데요.
저구문에서 too many argument에러가 납니다.
왜 그런지 모르겠어요...

toy의 이미지

죄송한데요 ..
그냥 $VAR로 쓰면 왜 안되나요....

jachin의 이미지

쉘 스크립트에서의 변수는 대입 되는 값을 그대로 나타내게 됩니다.

정말 VAR 값에 i am student 값을 대입한 상태로 비교문을 비교하게 된다면,

조건문은 i am student = "i am student" 로 나타낼 수 있습니다.

문자 상수는 따옴표를 이용해서 나타내야 하지요?

그래서 "$VAR" 이라고 표기해서 그 안의 값이 문자열일 경우 문자열 전체가 대입됨을 알려주는 것입니다.