쉘 스크립트 설치 시 산술 구문 오류 발생

쉘 스크립트 설치 시 산술 구문 오류 발생

소프트웨어 라이센스 서버를 쉘 스크립트로 설치하려고 하면 오류가 발생하고 실제로 해결 방법을 모릅니다. 스크립트에서 오류를 찾을 수 없습니다. 누군가 나에게 도움을 줄 수 있기를 바랍니다.여기에 이미지 설명을 입력하세요..

#!/bin/ksh
#----------------------------------------------------------------------------
#                                            COPYRIGHT DASSAULT SYSTEMES 2009
#----------------------------------------------------------------------------
# CREATED : 2009/07/06
#----------------------------------------------------------------------------

# Set variables
OSDS=aix_a64
export OSDS

VERSION=`uname -v`
RELEASE=`uname -r`
echo AIX $VERSION.$RELEASE
RC=0

if [[ $VERSION -lt 7 ]] ; then

  #----------------------------
   # Must be in AIX V7.1.2 or higher
   #----------------------------
   echo AIX 7.1 TL2 is the minimum required level >&2
   RC=1
else
  #-------------------------------------------------------------
  # 7.1 TL2 (libc 7.1.2.0) is the minimum required level of AIX
  #-------------------------------------------------------------
  A=`lslpp -Lqc bos.rte.libc |\
    awk -F: '{ print "bos.rte.libc",$3
               split($3,a,"[.]")
               if      (a[1]<7 )                                  exit 1
               else if (a[1]==7 && a[2]<1)                        exit 1
               else if (a[1]==7 && a[2]==1 && a[3] < 2)           exit 1 }' `
  if [[ $? -ne 0 ]] ; then
    echo  AIX 7.1 TL2 is the minimum required level >&2
    RC=1
  fi
fi

if [[ $RC = 0 ]] ; then
  echo Check Prerequisites for AIX OK
else
  echo >&2
  echo ERROR : Check Prerequisites for AIX KO >&2
  echo >&2
  exit $RC
fi


CURPWD=`pwd` || exit 1
[[ $0 = /* ]] && STARTDIR=$0 || STARTDIR=`echo $CURPWD/$0 | sed 's%/\./%/%g'`
START=${STARTDIR##*/}
STARTDIR=${STARTDIR%/*}
export STARTDIR
echo $STARTDIR

for i in $*
do
   if [[ $i = -h ]] 
    then 
      HELP=TRUE
  fi
done

if [[ $HELP = TRUE ]]
then
    # Help
    ${STARTDIR}/DSYLicServINSTB -h

else
  # Check root, and perform su if necessary
  #----------------------------------------
  if [[ `PATH=$PATH:/usr/ucb whoami` = root ]] ; then
    :
  else
     pbsu=$(eval echo \$$#)
     if [[ $pbsu = pbsu ]] ; then
      echo "Problem when trying to become super-user (root)"
      echo "Please try to become super-user by running following commands:"
      echo "       login root"
      echo "       cd /"
      echo "       $STARTDIR/$START $*"
      echo
      exit 1
     fi
     echo "Log on as super-user (root) before installing"
     echo
     su - root -c "$STARTDIR/$START $* pbsu"
     exit $?
  fi

  #Installation
  [[ -z $DISPLAY ]] && export DISPLAY=`uname -n`:0
  ${STARTDIR}/DSYLicServINSTB $*

fi

답변1

이것은 쉘 스크립트입니다설치하다AIX용으로 특별히 작성된 라이센스 서버(라이센스 서버 자체가 아님)(스크립트 자체에 설명됨).

Ubuntu의 명령은 uname -v예를 들어 (내 Ubuntu VM에서) 텍스트 문자열을 출력합니다.

#39-Ubuntu SMP Thu Jan 26 02:27:07 UTC 2017

AIX에서는 17행의 산술 비교에 사용할 수 있는 숫자를 출력합니다.

VERSION=`uname -v`
# ...
if [[ $VERSION -lt 7 ]] ; then

스크립트를 수정하더라도 Ubuntu에서는 실행할 수 없습니다.

내가 당신이라면 라이센스 서버에 대한 Linux 설치 지침을 찾고 있을 것입니다. Abaqus FLEXnet이라면 RedHat/SuSE가 지원된다고 생각합니다. Google에서 "Abaqus FLEXnet Ubuntu"를 검색하여 유용한 정보를 찾을 수도 있습니다.

관련 정보