[완료] 변수에 저장된 값과 문자열 비교에 대해 궁금한점이 있습니다
글쓴이: nockol / 작성시간: 일, 2009/05/31 - 1:30오전
함수에서 read 명령으로 (변수에) 읽어들인 값과 문자열을 비교하고자 합니다.
예를 들어, 어떤 함수내부에서,
read a
if [ ${a} = "A" ];then
echo "is A"
fi
이와같이 비교를 하려고 하니, 에러가 납니다.
= 좌, 우를 공백없이 붙였을 경우, 에러는 나지 않지만, 비교 연산이 언제나 참으로 나오던데요,
read로 변수에 읽어들인 값은 비교 연산을 할 때 무언가 특별한 처리를 해줘야 하는지요?
Forums:
ㅇㅇ?
= 가 아니라 ==를 써야 하지 않나요?
발생하는 에러가 too many arguments 라면
if [ ${a} = "A" ];
->
if [ "${a}" = "A" ];
이렇게 바꿔주시면 됩니다.
아하 그렇군요
이거 저도 몰라서 고생했던거라 궁금했는데... 그렇군요.
다음엔 긴히 활용하겠습니다.
답변 감사합니다
" " 로 묶어주니 비교는 잘 되는 것 같습니다.
헌데, 이상한점이 또 생겨버렸네요.
read 명령의 경우, 어떤 sh 파일에서 여러번 불려지면 좀 이상한 동작을 합니다.
마치, 내부적으로 포인터을 갖고있고 이것을 계속 증가하는 것같은 느낌...
A 함수에서 read, B 함수에서 read, 이후, 다시 A 함수에서 read 할 경우 좀 이상하게 읽어들입니다.
이게 왜 이런걸까요?
댓글 달기