쉘 스크립트 조각은 다음과 같습니다
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 전용 스크립트를 만드는 것은 의미가 없으므로 가 ==
됩니다 =
.)