Error (2)
2025-09-17 11:44:34
반응형
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
2025-09-17 11:03:35
반응형
userdel: projectx mail spool (/var/mail/projectx) not found

 

📌 왜 이런 메시지가 나올까?

리눅스에서 사용자를 만들면, 예전부터 메일 박스(메일 스풀) 디렉토리를 자동으로 같이 만들도록 되어 있었어요.

  • 위치: /var/mail/사용자이름 (또는 /var/spool/mail/사용자이름)
  • 용도: 서버가 내부에서 주고받는 시스템 메일 저장소

예시:

/var/mail/root
/var/mail/ubuntu
 
 

그런데 projectx 계정을 삭제하려고 할 때, 해당 메일 파일이 없으니까 경고성 메시지를 보여준 거예요.


📊 중요한 점

  • 이건 오류(error) 가 아니라 **알림(warning)**입니다.
  • “메일 저장소를 못 찾았지만 어차피 계정 삭제에는 문제없다”는 뜻이에요.
  • 즉, userdel 은 정상적으로 실행됐고, 계정도 삭제 완료 ✅

✅ 정리

  • /var/mail/projectx → 사용자용 메일 저장 폴더
  • not found 메시지 → 메일 박스가 아예 안 만들어져 있어서 못 지운다는 뜻
  • 계정 삭제는 정상 완료된 상태, 걱정 안 해도 됨
반응형

'Error > Linux' 카테고리의 다른 글

unexpected operator  (0) 2025.09.17