Programming/Bash Shell Script

[Bash Shell Script] 쉘 스크립트 if조건문 라인에서의 "[: too many arguments" 에러 발생

Nirsa 2019. 12. 17. 22:27
반응형

 

Bash Shell Script의 "[: too many arguments" 에러는 저마다 요인이 좀 다를 수 있습니다.

 

1. 어떤 값을 입력해야하는 상황에서 엔터를 쳤을때 발생하는 경우

2. 값을 재대로 비교하지 못하거나 아예 스크립트 자체가 실행되지 않는 경우

 

대표적으로 위의 두가지 경우가 있는데, 보통은 if문 조건식에 있는 변수값이 비어버리는 경우에 발생 할 수 있습니다.

if [ $result == "1" -o $result == "2" ]; then

  echo "good!"

fi

위와 같은 간단한 조건식이 있을 때 result 변수값이 비어버릴 경우 문법에 의해 조건식이 성립될 수 없어 "[: too many arguments" 에러가 발생 합니다.

 

해결 방법은 비교적 간단한데, 변수명을 큰따옴표("") 또는 작은따옴표('') 로 묶어주어서 변수가 비어 있더라도 조건식에 완전히 공백으로 들어가는 형태가 아닌, 비어있는 문자열로 인식 시켜야 합니다.

반응형