AIXで配列を使用中エラー:81行の構文エラーエラー: '( '予期しない

AIXで配列を使用中エラー:81行の構文エラーエラー: '( '予期しない

AIX環境で.shスクリプトを実行しようとしていますが、以下の行でエラーが発生します。

tableList = ( Value1 Value2 Value3 )

次のスクリプトを実行しようとしています。

  1. sh file1.ksh
  2. ファイルの名前を変更し、.kshファイルを実行しました。sh ./file1.sh

答え1

シェルはsh通常POSIX標準の一部ではないため、配列を理解していません。スクリプトのファイル名は任意であるため、a.shまたは.kshファイル名のサフィックスは意味がありません。

また、配列割り当て構文が少し間違っています(スペースが多すぎます)。修正後の様子です

tableList=( Value1 Value2 Value3 )

で終わる変数名を参照してください(

スクリプトを実行するには、または同じ配列を実装するシェルを使用してスクリプトを実行する必要があります(ksh93使用している他のシェル構成によって異なります)。 AIXでは、配列に値を割り当てる構文が少し異なります(を使用)。bashzshyashkshksh88set -A tableList Value1 Value2 Value3

スクリプトを実行する最善の方法は、ksh93スクリプトの上部にインタプリタを指す行を追加してから、スクリプトを実行可能にすることです。#!ksh93chmod +x scriptname

AIXでシェルを使用するには、ksh93スクリプトの最初の行は次のようになります。

#!/usr/bin/ksh93

次に、コマンドラインで明示的なインタプリタを指定せずにスクリプトを実行します。

./scriptname

答え2

AFAIR、AIXはksh88ベースのPOSIXシェルを/ bin / shとして使用します。

ksh88はサポートしていません

tableList=( Value1 Value2 Value3 )

これはPOSIXでは必要ありません。

関連情報