/*
#!/bin/bash

function maneiro
{
        echo "$1"
}

function index
{
        local var="Olha que trem doido"
        maneiro "$var"
}

index


olha soh que doido, ainda continua listando o conteudo da variavel $var ...
*/

E não era para isso acontecer ? Até onde ví em sua lógica, é isso que você
manda o script fazer.
Vamos analisar o script:

1 - Definimos a funcao "maneiro"
2 - Definimos a funcao "index"
3 - Chamamos a funcao "index"
4 - Na funcao index, definimos uma variavel local chamada var, com valor
"Olha que trem doido"
5 - Em seguida, a funcao index chama a funcao maneiro, passando como
parâmetro a variável local var 
6 - A funcao maneiro faz um echo em seu parametro, que é o conteúdo da
variavel local var definida na funcao index.

É bastante óbvio para mim que ele continue "listando o conteúdo da variável
$var"

Agora, vamos modificar um pouco o script:

#!/bin/bash

function maneiro
{
        echo "$var"
}

function index
{
        local var="Olha que trem doido"
        maneiro
}

index

O resultado será Olha que trem doido, já que a funçao "maneiro" foi chamada
no mesmo contexto ( sub-shell ) da definicao da variável local $var, sendo
então seu conteúdo preservado e passado para a funcao "maneiro".

Agora, se o script for assim:

#!/bin/bash

function maneiro
{
        echo "$var"
}

function index
{
        local var="Olha que trem doido"
}

index
maneiro

Ele nao retornará nada, já que maneiro é executada em outro contexto.

Nada doido aí. Basta apenas ter o entendimento de como o SO e shell
funcionam.

------
GPG Public Key
http://keyserver.veridis.com:11371/export?id=-6037232142263389818
         \\|||//
         (.) (.)
----ooOO--( )--OOoo-----
      MrBiTs
http://www.mrbits.com.br
  [EMAIL PROTECTED]
------------------------



---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a