간단한 쉘코드 질문합니다.

willow91의 이미지

...
    250 gnames=`awk -F: '$1~/root$/{ print $4 }' /etc/group`
    # $gnames의 변수의 내용은 root,user1이고 저는 root만 존재하는 것을 확인해야 하는 상황입니다.
    251 echo $gnames
    252 echo "$gnames"
    253 if [ "$gnames"="root" ]
    254 then
    255         echo "equal"
    256 else    
    257         echo "not equal"
    258 fi
....

쉘코드 실행하여 값을 보면 계속 True에 걸려서 equal만 출력됩니다.
제가 생각하기에는 253 라인의 if문에서 문자열 비교가 제대로 안되는 것 같은데..
혹시 gnames라는 변수 값이 ``로 설정되서 문자열 형태가 아닌건가요?ㅠ ㅠ
문자열비교로 2시간째 고생중이네요ㅠㅠㅠㅠ 고수님들 도와주세요ㅜㅜ

doodoo의 이미지

이상하네요...not equal 나오는데...나만 그런가?

#!/bin/bash
 
gname=root,user1
 
if test $gname = root; then
        echo equal; echo
else
        echo not..equal; echo
fi
 
if test ${#gname} -eq 4;then
        echo equal;echo
else
        echo not..equal;echo
fi

결과....
doodoo@doodoo:~/tmp$ ./t.sh
not..equal
 
not..equal
pynoos의 이미지

253 if [ "$gnames"="root" ]

'=' 앞 뒤에 공백을 넣어 주세요.