未找到命令在 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"

相关内容