Para loop com incremento variável

3

Eu tenho um pequeno script de shell e o que eu quero fazer quando é executado é exibir cada N'th parâmetro inserido pelo usuário, onde N é o primeiro parâmetro. Ex: para entrada 2 3 4 5 6 eu deveria mostrar 3 5 . O que eu tenho até agora:

N=
for ((i=2;i<$#;i+=$N))
do
    echo -n ${i}" "
done

No entanto, recebo um erro de sintaxe: operando esperado nesta parte: i+=$N . Como posso resolver isso? Se eu substituir i+=$N por i+=2 , por exemplo, funciona. Mas eu quero N lá ...

    
por vlad silviu Farcas 02.03.2016 / 18:10

1 resposta

2

Então, para que seu código funcione como você deseja, você deve fazer algo como:

N=
for ((i=2;i<$#;((i=i+$N))))
do
  echo -n ${!i}" "
done

Observe o ! antes de i .

Boa sorte:)

    
por Vlad Tarniceru 02.03.2016 / 18:33