bash:予期しないトークン "elif"の近くに構文エラーがあります。

bash:予期しないトークン

シェルスクリプトの断片は次のとおりです。

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専用のスクリプトを作成することは意味がないためです===

おすすめ記事