저는 Debian 시스템 8.6에서 기본 Bash 스크립팅을 배우고 있습니다. 조건부 구문을 작성하는 방법을 보여주는 책에서 예제를 읽었습니다. 아래에 남겨두겠습니다:
#!/bin/bash
#Filname: CondConst.sh
if [$UID -ne 0]; then
echo "Non root User."
else
echo "Root User."
fi
이 코드가 포함된 스크립트를 실행하면 다음과 같은 오류 메시지와 결과가 나타납니다.
[1000: command not found
Root User.
여러 가지 방법(따옴표 및 공백 사용)으로 코드를 수정해 보았지만 비교를 위해 대괄호 구문을 사용하는 방법을 이해할 수 없습니다. 나는 다음과 같은 다른 구문을 사용하여 이 문제를 해결했습니다.
#!/bin/bash
#Filname: CondConst.sh
if (($UID!=0)); then
echo "Non root User."
else
echo "Root User."
fi
가능하다면 왜 대괄호를 사용할 수 없는지 설명해 주실 수 있나요?
정말 감사드립니다.
답변1
귀하의 오류는 뒤에 공백을 넣지 않았기 때문에 [
명령으로 처리되므로 [1000
공백을 넣으십시오.
#!/bin/bash
#Filname: CondConst.sh
if [ $UID -ne 0 ]; then
echo "Non root User."
else
echo "Root User."
fi