Declaração da matriz [fechada]

2

Como posso declarar um array no Ubuntu? Eu tentei o código abaixo

Unix=('Zero' 'One' 'Two')

#echo -n "area2[0] = "
echo ${area2[@]}
# Aha, zero-based indexing (first element of array is [0], not [1]).

#echo -n "area2[1] = "
#echo $ {area2[1]}  

Isso não funciona no Ubuntu.

    
por user197679 01.10.2013 / 10:18

2 respostas

5

Se você chamou / nomeou sua matriz Unix , por que você usa area2 ?!? Ou você declarou antes desta matriz chamada area2 ? Tente isto:

Unix=('Zero' 'One' 'Two')

echo "Unix = ${Unix[@]}"
echo "Unix[0] = ${Unix[0]}"
echo "Unix[1] = ${Unix[1]}"

E, por favor, leia alguma documentação sobre Arrays in Bash .

    
por Radu Rădeanu 01.10.2013 / 10:29
2

Vou dar um exemplo completo:

#!/bin/bash    
array=("first item" "second item" "third" "item")

echo "Number of items in original array: ${#array[*]}" 

for ix in ${!array[*]} 
do
    printf "   %s\n" "${array[$ix]}" 
done 

arr=(${array[*]}) 
echo "After unquoted expansion: ${#arr[*]}" 

for ix in ${!arr[*]} 
do
    printf "   %s\n" "${arr[$ix]}" 
done 

arr=("${array[*]}") 
echo "After * quoted expansion: ${#arr[*]}" 

for ix in ${!arr[*]} 
do
    printf "   %s\n" "${arr[$ix]}" 
done 

arr=("${array[@]}") 
echo "After @ quoted expansion: ${#arr[*]}" 

for ix in ${!arr[*]}     
do
    printf "   %s\n" "${arr[$ix]}" 
done

Espero que ajude.

    
por Frantique 01.10.2013 / 10:29