Tengo una indexado bash matriz y me gustaría utilizar una expresión como «${a[@]}» excepto yo quiero que no incluyen a[0]. Lo mejor que se me ocurre es esta:

j=0
for i in "${a[@]}"
do
    b[j]=${a[++j]}
done

y, a continuación, utilizar «${c[@]}». Hay una manera mejor?

InformationsquelleAutor grok12 | 2011-06-09

1 Comentario

  1. 41
    $ a=(1 2 3)
    $ echo "${a[@]:1}"
    2 3
    • creo que él necesita, que para acceder a la matriz b. b=(${a[@]:1})
    • Sí, funciona! Żsabría usted donde en el manual de bash que se describe?
    • Están en la Matrices y Parámetro de Expansión secciones. Que pueden ser utilizados juntos no se menciona explícitamente, pero no funciona.
    • Thx, me encontré con Parámetro de Expansión para ${parámetro:offset} que se dice … Si el parámetro es ‘@’, el resultado es la longitud de los parámetros de posición a partir del desplazamiento. Si el parámetro es una matriz indexada nombre del subíndice por ‘@’ o ‘*’, el resultado es la longitud de los miembros de la matriz comenzando con ${parámetro[offset]}.

Dejar respuesta

Please enter your comment!
Please enter your name here