bashの配列に値を割り当てるコマンドが見つかりません

bashの配列に値を割り当てるコマンドが見つかりません

特定のインデックスの配列が空の場合、値を割り当てようとするとエラーが発生しますcommand not found

while IFS=$';' read -r -a array
do

# if empty set Not Available
if [[ -z ${array[6]} ]] ; then
        $array[6]="Not Available"
        echo barcode is ${array[6]}
fi

  echo '  <Product>' >> $file_out
  echo '    <Reference>'${array[0]}'</Reference>' >> $file_out
  echo '    <Name>'${array[1]}'</Name>' >> $file_out
  echo '    <Category>'${array[2]}'</Category>' >> $file_out
  echo '    <Price>'${array[3]}'</Price>' >> $file_out
  echo '    <Scale>'${array[4]}'</Scale>' >> $file_out
  echo '    <Manufacture>'${array[5]}'</Manufacture>' >> $file_out
  echo '    <Barcode>'${array[6]}'</Barcode>' >> $file_out
  echo '    <DatePub>'${array[7]}'</DatePub>' >> $file_out
  echo '    <Image>'${array[8]}'</Image>' >> $file_out
  echo '    <Availability>'$availability'</Availability>' >> $file_out
  echo '    <Supplier>'$Supplier'</Supplier>' >> $file_out

echo '  </Product>' >> $file_out
done < $file_in

このコードは「値の割り当て部分」を除いてうまく機能します。

# if empty set Not Available
if [[ -z ${array[6]} ]] ; then
        $array[6]="Not Available"
        echo barcode is ${array[6]}
fi

間違い:

./convert-csv-to-xml: row 20: LM113A[6]=Not Available: command not found
barcode is

20行目は次のとおりです。

$array[6]="Not Available"

ベストアンサー1

$配列に文字列割り当てを使用する必要はありません。

試してみてください

array[6]="Not Available"

おすすめ記事