Fala Victor,
creio que usar o for puro seja a melhor saída. Veja o teste direto no
prompt:
$ set - a b c "qq coisa" # Setando os parâmetros posicionais
$ for var in "$@"
> do
> echo $var
> done
a
b
c
qq coisa
for var in "$@"
> do
> echo $var
> done
a
b
c
qq coisa
--
Abraços,
Julio
*Em setembr
Ah, corrigindo, como disse o colega, para pegar mais que 9 parâmetros...
for ((i=0;i<=$#;i++))
{
eval 'v+=( "${'$i'}")'
}
2008/9/11 Leandro Santiago <[EMAIL PROTECTED]>
> Acrescentando...
>
> Uma versão bizarra com o eval:
>
> #!/bin/bash
>
> # obtendo os valores...
> for ((i=0;i<=$#;i++))
Acrescentando...
Uma versão bizarra com o eval:
#!/bin/bash
# obtendo os valores...
for ((i=0;i<=$#;i++))
{
eval 'v+=( "$'$i'")'
}
# exibindo...
for ((i=0;i<[EMAIL PROTECTED];i++))
{
echo "[$i] == ${v[$i]}"
}
[As partes desta mensagem que não continham texto foram removidas]
Uma maneira simples é alterar o separador padrão, assim:
IFS="
"
vparm=($@)
for (( i = 0; i < $#; i++ )); do
echo ${vparm[i]}
done
2008/9/10 Victor LGomes <[EMAIL PROTECTED]>
> Boa tarde pessoal!
>
> Estou com a seguinte dúvida:
> Montei um script que recebe alguns parâmetros e os armazena
Se o seu script recebeu os parâmetro ele os guardou em variáveis chamadas $9
(onde 9 é um número).
Portanto:
$ cat abc.sh
#!/bin/bash
echo "Total de parametros: $#"
for i in $(seq 1 $#)
do
echo "Parametro $i - $1"
shift
done
$ ./abc.sh a b c d "qualquer coisa"
Total de parametros: 5
Param
Boa tarde pessoal!
Estou com a seguinte dúvida:
Montei um script que recebe alguns parâmetros e os armazena em um vetor.
Posteriormente uso cada um dos valores armazenados no vetor para montar uma
nova linha de comando. O exemplo abaixo serve para ilustar a minha dúvida:
vparm=($@)
for (( i = 0;