반응형
login.sh: 6: [: admin: unexpected operator
#!/bin/bash
read -p "Enter your name: " NAME
if [ "$NAME" == "admin" ]; then
echo "Welcome Administrator"
else
echo "Welcome $NAME"
fi
🔎 왜 이런 에러가 뜰까?
- == 비교 연산자는 bash에서만 지원됩니다.
- 만약 스크립트를 sh login.sh 로 실행하면, sh 는 보통 dash라는 셸을 사용해요.
- dash는 == 연산자를 모르는 셸 → 그래서 unexpected operator 에러가 나는 거예요.
✅ 해결 방법
방법 1: 무조건 bash로 실행
bash login.sh
방법 2: 스크립트 첫 줄 확인
첫 줄이 꼭 아래처럼 되어 있어야 해요 👇
#!/bin/bash
방법 3: POSIX 호환 코드로 바꾸기
== 대신 = 사용하면 sh에서도 동작합니다.
if [ "$NAME" = "admin" ]; then
#!/bin/bash
read -p "Enter your name: " NAME
if [ "$NAME" = "admin" ]; then
echo "Welcome Administrator"
else
echo "Welcome $NAME"
fi
🎯 정리
- 원인: sh에서는 == 연산자를 지원하지 않아서 발생
- 해결:
- bash login.sh 로 실행하거나
- 코드에서 == → = 로 바꾸면 됨
반응형
'Error > Linux' 카테고리의 다른 글
mail spool not found (0) | 2025.09.17 |
---|