シェルスクリプトのインストール時に算術構文エラーが発生する

シェルスクリプトのインストール時に算術構文エラーが発生する

ソフトウェアライセンスサーバーをシェルスクリプトとしてインストールしようとするとエラーが発生し、実際に解決策がわかりません。スクリプトでエラーが見つかりません。誰かが私に役立つことを願っています。ここに画像の説明を入力してください。

#!/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」を検索して、役立つ情報を見つけることもできます。

おすすめ記事