bash: 예상치 못한 토큰 "elif" 근처에 구문 오류가 있습니다.

bash: 예상치 못한 토큰 "elif" 근처에 구문 오류가 있습니다.

쉘 스크립트 조각은 다음과 같습니다

if [[ $OS == Linux ]] ; then

    LINUX_FC=gfortran
#
#   set 32 or 64 Bits executable
#
    ARCH=`uname -m`
    echo "PROCESSOR IS: $ARCH"
    if [ [ $ARCH == x86_64 ] ]  ; then
        BITS=SIXTYFOUR;
    else
        BITS=THIRTYTWO;
    fi

elif [[ $OS == Darwin ]] ; then

        DARWIN_FC=gfortran;

else
    BITS=THIRTYTWO;
fi;

오류는 다음과 같습니다

OPERATING SYSTEM IS: Linux
: command not found
jobcomp1: line 34: syntax error near unexpected token `elif'
'obcomp1: line 34: `elif [ [ $OS == Darwin ] ] ; then

답변1

쉘은 실제로 대괄호 사이의 공백을 좋아하지 않습니다.

if [ [ $ARCH == x86_64 ] ]  ; then

그것은 다음과 같은 것을 기대합니다

if [[ $ARCH == x86_64 ]]  ; then

또는 더 나은)

if [ $ARCH = x86_64 ]  ; then

(bash 전용 스크립트를 만드는 것은 의미가 없으므로 가 ==됩니다 =.)

관련 정보