[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 11:27:43 -0700 (PDT) |
Obrigado pela atenção Julio!
Vamos lá,
Pelo que eu entendi do seu exemplo, qaundo executasse este código deveira ter
em
var=$(Funcao) o que seria impresso por echo $3, ou seja, o resultado da função
Funcao, já que as duas outras variáveis foram jogadas para os tty, logo seria
certo fora no corpo do programa pedir para imprimir $var, fiz isso como no
bloco
a baixo e para minha surpresa o mesmo acontece como no meu programa, nada foi
impresso:
function Funcao()
{
local v1 v2 v3
echo $v1 > /dev/tty
echo $v2 > /dev/tty
echo $3
}
var=$(Funcao)
na linha de comando:
$ echo $var
Não sei se entendi errado seu exemplo, li no seu livro sobre devolver valor ao
shell mas não compreendi muito bem, no meu caso o shell que chamou é e linha de
comando, no meu exemplo em particular do pastebin, se rodar o script com source
na frente ele se comporta como eu imaginava, porém queria uma maneira do
próprio
script injetar isso de volta nas variáveis do sistema de ambiente ou algo
assim,
poderia fazer via arquivo, o que na minha opinião ficaria muito gambiarra e não
me parece ser a forma correta. Voltando ao meu exemplo do pastebin, mesmo
usando
o source na frente não vejo como fazer isso automaticamente pois se fizer outro
script o chamando com o source na frente os resultados também se perderão na
linha de comando, e ainda assim, como se trata de um script de firewall poderia
ser acessado por qualquer usuário ou qualquer terminal por isso preciso que ele
seja visível a todo sistema como uma variável de ambiente, como se injetasse
ele
no /etc/profile.
Obrigado e um abraço Julio!
Wagner Brasileiro
________________________________
De: Julio C. Neves <address@hidden>
Para: address@hidden
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> 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
---------------------------------------------------------------------
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]
- Exportar variável de dentro de uma função globalmente, Wagner Brasileiro, 2010/09/24
- Res: [shell-script] Exportar variável de dentro de uma função globalmente, Wagner Brasileiro, 2010/09/24
- Re: [shell-script] Exportar variável de dentro de uma função globalmente, Julio C. Neves, 2010/09/24
- Res: [shell-script] Exportar variável de dentro de uma função globalmente,
Wagner Brasileiro <=
- Res: [shell-script] Exportar variável de dentro de uma função globalmente, Wagner Brasileiro, 2010/09/24
- Re: [shell-script] Exportar variável de dentro de uma função globalmente, Julio C. Neves, 2010/09/24
- Res: [shell-script] Exportar variável de dentro de uma função globalmente, Wagner Brasileiro, 2010/09/24
- Re: [shell-script] Exportar variável de dentro de uma função globalmente, Julio C. Neves, 2010/09/24
- Re: [shell-script] Exportar variável de dentro de uma função globalmente, Lawrence Waclawiak, 2010/09/24
- Res: [shell-script] Exportar variável de dentro de uma função globalmente, Wagner Brasileiro, 2010/09/24
- Re: [shell-script] Exportar variável de dentro de uma função globalmente, Julio C. Neves, 2010/09/25