如果某个索引处的数组为空,我尝试分配一个值,但出现错误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"