[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [shell-script] To certo ou To errado !!!
From: |
MrBiTs |
Subject: |
RE: [shell-script] To certo ou To errado !!! |
Date: |
Mon, 19 Dec 2005 10:22:00 -0300 |
/*
#!/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
address@hidden
------------------------