shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Recebimento e passagem de parâmetro posicional


From: Julio C. Neves
Subject: Re: [shell-script] Recebimento e passagem de parâmetro posicional
Date: Wed, 24 Oct 2007 13:25:12 -0300

Veja só o exemplo abaixo:
julio@wagemobile:~$ set - -a "teste1 teste2" -b teste3 -c "teste4 teste5"
# O set - foi feito só por preguiça de criar script, então usei-o para
passar parâmetros para o próprio bash
julio@wagemobile:~$ echo $1
-a
julio@wagemobile:~$ echo $2
teste1 teste2
julio@wagemobile:~$ for i in $@
> do
> echo $i
> done
-a
teste1
teste2
-b
teste3
-c
teste4
teste5
# Não é isso que vc queria....
julio@wagemobile:~$ for i in $*; do echo $i; done
-a
teste1
teste2
-b
teste3
-c
teste4
teste5
# Nem isso ...
julio@wagemobile:~$ for i in "$@"; do echo $i; done
-a
teste1 teste2
-b
teste3
-c
teste4 teste5
# Ahhhhh! Acho que é isso....

Abração,
Julio
Faltam 4 dias para começar o curso de
programação em Shell na 4Linux, em SP.
http://www.4linux.com.br/ - (11) 2125-4747



Em 24/10/07, Rodrigo Monteiro <address@hidden> escreveu:
>
>   Seguinte pessoal,
>
> Estou criando um shell script para ficar no lugar de um binario existente.
> Ou seja, ele vai assumir o que for passado, e encaminhar para o antigo.
>
> Explico melhor:
>
> binario -> irá se chamar binario.antigo
> shell_script.sh (o que estou criando) -> irá se chamar binario
>
> Quando algum programa executar "binario", o que vai ser executado é o
> meu script, fazendo alguns tratamentos, e passando os parâmetros
> recebidos para binario.antigo.
>
> Ou seja
>
> Antes da mudança:
> $ binario -a "teste1 teste2" -b teste3 -c "teste4 teste5"
> irá exectar o binario, sendo:
> $1 = -a
> $2 = teste1 teste2
> $3 = -b
> $4 = teste3
> $5 = -c
> $6 = teste4 teste5
>
> Depois da mudança:
> $ binario -a "teste1 teste2" -b teste3 -c "teste4 teste5"
> irá exectar o binario.antigo, sendo:
> $1 = -a
> $2 = teste1
> $3 = teste2
> $4 = -b
> $5 = teste3
> $6 = -c
> $7 = teste4
> $8 = teste5
>
> Conteúdo do shell script (por enquanto só para testes):
> ----
> #!/bin/bash
> binario.antigo $* && {
> tratamento1
> tratamento2
> etc
> }
> ----
>
> O problema é na passagem dos parâmetros para o binário.antigo ($*),
> pois as variáveis que estão "agrupadas" (teste1 e teste 2), irão
> "desagrupar".
> Como resolvo esse problema?
>
> Acho que consegui explicar, ou enrolei demais?
>
> Abraços,
> Rodrigo.
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]