Não precisamos usar $
para atribuir uma string a um array.
Apenas tente com
array[6]="Not Available"
Estou tentando atribuir um valor se a matriz em um determinado índice estiver vazia, mas estou recebendo um erro 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
este código está funcionando, exceto pela "parte de atribuição de valor":
# if empty set Not Available
if [[ -z ${array[6]} ]] ; then
$array[6]="Not Available"
echo barcode is ${array[6]}
fi
Erro:
./convert-csv-to-xml: row 20: LM113A[6]=Not Available: command not found
barcode is
linha 20 é:
$array[6]="Not Available"
Tags shell-script array