[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Variável
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Variável |
Date: |
Fri, 2 Feb 2007 11:32:48 -0200 |
fique atento
$ cat xxx
#!/bin/bash
echo SHLVL = $SHLVL
echo antes = $TESTE
TESTE=lala
echo depois = $TESTE
$ export TESTE=limao
$ ./xxx
SHLVL = 2
antes = limao
depois = lala
$ echo $TESTE
limao
$ . ./xxx # usando o comando source ou .
SHLVL = 1
antes = limao
depois = lala
Ou seja, vc não consegue alterar a sua variavel no shell pai por que
vc executa o script no shell filho, as variaveis só vão, não voltam.
uma boa explicação esta aqui
http://www.meleuzord.hpg.ig.com.br/textos/bashscripting.txt
--> SHLVL
Esta variável armazena quantos shells você executou a partir da
primeira shell.
Confuso? Vamos a um exemplo.
Imagine que você está usando o bash e executou o bash de novo, nesta
situação o seu SHLVL vale 2. Veja isto:
/* -=-=-= exemplo =-=-=- */
$ echo $SHLVL
1
$ bash # estou executando o bash a partir do bash
$ echo $SHLVL
2
$ exit # saí do segundo bash
exit
$ echo $SHLVL
1
/* -=-=-= exemplo =-=-=- */
Quando você inicializa scripts a partir do comando "source" o script é
executado no shell pai, portanto se tiver um "exit" no script você vai
executar um logoff. É aí que está a utilidade da variável SHLVL. Quando
você está no shell primário o valor de SHLVL é 1. Então você pode, através
de um "if" por exemplo, executar o "exit" só se SHLVL for diferente de 1
(mais informações sobre o source em "6.1 Funções como comandos").
Pratique um pouco diferentes usos e formas de setar variaveis e abrir
sub-shells, é bom pra praticar este conceito (q as vezes atrapalha
quando a gente não se dá conta dos detalhes).
On 2/2/07, luiz henrique campos <address@hidden> wrote:
Olá grupo,
sou novato no grupo e estou com uma duvida em uma questão que olhei no
selfteste:
se eu dê o comando "export TESTE=snuff" e apos isso criar um script da
seguinte forma:
#!/bin/bash
USER=testeking
TESTE=$USER
porque
apos executar esse script a variavel $TESTE continua com o valor "nuff"
?????? Sendo que se eu nao usar o script e da o seguinte comando
TESTE=snuff2 (direto, sem exportar), a variavel vai pegar o resultado
"snuff2".
Por que isso acontece??
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
--
Tiago B Peczenyj
Linux User #405772
# cd /pub
# more beer
- Variável, luiz henrique campos, 2007/02/02
- Re: [shell-script] Variável,
Tiago Barcellos Peczenyj <=