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

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

Re: [shell-script] Exportar variável de dentro de uma função globalmente


From: Julio C. Neves
Subject: Re: [shell-script] Exportar variável de dentro de uma função globalmente
Date: Sat, 25 Sep 2010 12:48:55 -0300

Wagner,
É exatamente a mesma coisa:

$ cat scr1.sh
#!/bin/bash
read v1 v2 v3 <<< "1 2 3"
{
    echo $v1
    echo $v2
} > /dev/tty
echo $v3

Agora no prompt (que, neste caso, é a maior de todas as instâncias):

$ Var=$(./scr1.sh)
1
2
$ echo A variável \$Var ficou com $Var
A variável $Var ficou com 3

Abraços,
Julio


Em 24 de setembro de 2010 23:28, Wagner Brasileiro <
address@hidden> escreveu:

>
>
> É essa eu passei longe. rs.... Ia pastar um bom tempo até chegar a esta
> conclusão sozinho.
>
> Fiz assim:
> function Funcao()
> {
> local v1 v2 v3
> read v1 v2 v3 <<< "1 2 3"
>
> echo $v1 > /dev/tty
> echo $v2 > /dev/tty
> echo $v3
> }
>
> var=$(Funcao)
> echo $var
> echo $var
>
> E realmente funcionou!!!! Mas fica a pergunta: Como jogar isso para o mais
> alto
> nível dos shells, onde possa ver por todo o sistema, de fora dos scripts?
> Estou com a sexta edição do seu livro na mão na página 223 onde vc diz
> exatamente isso que me explicou acima, que para passar valor para um nível
> superior "basta você atribuir a uma variável o valor de um Subshell fazendo
>
> assim: var=`subshell`
>
> Só que no exemplo acima que testamos o subshell é a função função, como
> atribuo
> isso externalmente ao script a nível de todo o sistema? Já tentei exportar
> e não
> funciona, o que chega mais próximo a isso é chamar o script com o source na
>
> frente, mas aí o script perde o controle, fica na dependência de outros
> ainda assim fica preso aquele tty e à aquela execução.
> Desculpe pelo aluguel, mas não encontrei nada satisfatório que pudesse me
> ajudar
> neste problema.
>
> Meu muitíssimo obrigado!!!!
>
> Um forte abraço,
>
> Wagner Brasileiro
>


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



reply via email to

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