Acessando todas as variáveis passadas para um shell script de um determinado índice

1

Como posso acessar os valores dentro de $@ a partir do terceiro? Agora eu estou passando de três para nove, mas acho que há uma maneira melhor:

while getopts ":n" opt "$3 $4 $5 $6 $7 $8 $9"; do
    
por Robert Munteanu 19.04.2010 / 16:15

2 respostas

2

Parece uma abordagem funky de argumentos para mim, mas:

[kbrandt@kbrandt: ~/scrap] cat args
args=("$@")
echo ${args[0]}
echo ${args[@]:1:2}
echo ${args[@]:0:$#}
[kbrandt@kbrandt: ~/scrap] bash args foo bar baz biz
foo
bar baz
foo bar baz biz

Eu recomendo que você confira a Resposta do FAQ sobre os argumentos da linha de comando (que basicamente diz getopts ou loop / case / shift ).

    
por 19.04.2010 / 16:20
2

Eu suponho que você está usando bash neste caso?

Nesse caso, você deve usar o deslocamento .

Um exemplo:

Conteúdo do shift.sh:

#!/bin/bash
shift 3
echo $*

Resultado:

graeme@graeme:~$ ./shift.sh one two three four five six
four five six
    
por 19.04.2010 / 16:28

Tags