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

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

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


From: Wagner Brasileiro
Subject: Res: [shell-script] Exportar variável de dentro de uma função globalmente
Date: Fri, 24 Sep 2010 13:05:50 -0700 (PDT)

Furo feio mestre, perdoe-me a distração!! rsrsrs
bem, corrigi e se não mexi em nada errado ficou assim:

#!/bin/bash

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


como resultado ele me imprimi:

1
2
3
Pelo que eu entendi ele deveria printar isso duas vezes quando peço para ele 
fazer: echo $var
Se pedir para fazer isso de fora do script na linha de comando ele continua a 
imprimir nada.

Abc,

Wagner Brasileiro




________________________________
De: Julio C. Neves <address@hidden>
Para: address@hidden
Enviadas: Sexta-feira, 24 de Setembro de 2010 16:04:18
Assunto: Re: [shell-script] Exportar variável de dentro de uma função 
globalmente

Mas Wagner,
repare que no exemplo que dei, coloquei um monte reticências. Isso era para
substituir um código qq. Na função que vc fez, deveria ter pelo menos
atribuído valor às 3 variáveis.

Após local a b c, insira:
read a b c <<< "1 2 3"

Vc vera que será jogado para a tela:
1
2
e var conterá 3.

Abc,
Julio


Em 24 de setembro de 2010 15:36, Wagner Brasileiro <
address@hidden> escreveu:

>
>
> Uma correção, no outro exemplo que enviei também executei dentro do
> programa
> pedindo para imprimir: echo $var e na apareceu também.
>
> Um abraço,
>
>
> Wagner Brasileiro
>
> ________________________________
> De: Julio C. Neves <address@hidden <julio.neves%40gmail.com>>
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Enviadas: Sexta-feira, 24 de Setembro de 2010 14:37:49
> Assunto: Re: [shell-script] Exportar variável de dentro de uma função
> globalmente
>
>
> Fala Wagner,
> se vc declarar uma variável antes de declarar a função e dentro desta
> função
> alterar seu valor, o corpo do prg verá este valor alterado.
>
> No entanto se vc está querendo passar valores de variáveis locais para o
> prg, aí é um pouco diferente.
>
> No fragmento abaixo tenho 3 variáveis locais: v1, v2 e v3. V1 e v2 serão
> mandadas para a tela e v3 será mandada para var, que é uma variável do prg.
> Veja:
>
> function Funcao
> {
> local v1 v2 v3
> ...
> echo $v1 > /dev/tty
> ...
> echo $v2 > /dev/tty
> ...
> echo $3
> }
> # corpo do prg.
> var=$(Funcao)
>
> De forma mais reduzida, tb poderíamos fazer:
>
> function Funcao
> {
> local v1 v2 v3
> ...
> {
> echo $v1
> ...
> echo $v2
> ...
> } > /dev/tty
> echo $3
> }
> # corpo do prg.
> var=$(Funcao)
>
> Era isso?
>
> Abc,
> Julio
>
> Em 24 de setembro de 2010 10:03, Wagner Brasileiro <
> address@hidden<wagnerbrasileirocardoso%40yahoo.com.br>>
> escreveu:
>
> >
> >
> > Bom dia senhores,
> >
> > estou tendo problemas com o seguinte xcript:
> http://pastebin.com/mTYuzM3g
> >
> > Estou tentando criar uma flag que seja visível em qualquer instância do
> > Bash, em
> > qualquer terminal a qualquer hora e acho que estou fazendo algo muito
> > errado,
> > pois se quer consigo visualizar as variáveis fora das funções, sei que é
> > bem
> > provável que meu erro seja justamente aí, sei que é possível exportar
> > variáveis
> > mas de dentro de uma função não sei se isso é possível de baixo para
> cima,
> > já li
> > algo sobre ser impossível alterar valores de variáveis exportadas em
> outras
> >
> > instâncias. Seria uma grande limitação, mas creio que com certeza alguém
> > aqui
> > deve ter alguma saída para esse problema, sei que o Bash é muito poderoso
> > para
> > ficar preso em algo tão simples. Li algo no livro do Julio sobre importar
> > dados
> > de um subshell, talvez seja isso que estou precisando, mas não entendi
> > muito bem
> > o exemplo. Agradeço por qualquer ajuda. Desde já saliento que com certeza
> > estou
> > fazendo algo errado ao exportar de dentro da função, não sei o que, mas
> me
> > parece errado em vista as outras linguagens, e é claro, também não
> > funciona!
> > rs.. Já li sobre mas não achei o exemplo que eu quero ainda de uma função
> > retornando um valor global.
> >
> > Obrigado,
> >
> > Wagner Brasileiro
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ------------------------------------
>
>
> ----------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl,
> C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ----------------------------------------------------------
> Sair da lista: 
>address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
>
> ----------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ----------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, 
C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos


      

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



reply via email to

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