조건부 구성 구문 문제 - 대괄호 또는 둥근 괄호

조건부 구성 구문 문제 - 대괄호 또는 둥근 괄호

저는 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

관련 정보