Valeu pela ajuda Tiago ----- Mensagem original ---- De: Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> Para: shell-script@yahoogrupos.com.br Enviadas: Sexta-feira, 2 de Fevereiro de 2007 11:32:48 Assunto: Re: [shell-script] Variável
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.meleuzor d.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 <luiz_camposbr@ yahoo.com. br> 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 <!-- #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family:Georgia; } #ygrp-text p{ margin:0 0 1em 0; } #ygrp-tpmsgs{ font-family:Arial; clear:both; } #ygrp-vitnav{ padding-top:10px; font-family:Verdana; font-size:77%; margin:0; } #ygrp-vitnav a{ padding:0 1px; } #ygrp-actbar{ clear:both; margin:25px 0; white-space:nowrap; color:#666; text-align:right; } #ygrp-actbar .left{ float:left; white-space:nowrap; } .bld{font-weight:bold;} #ygrp-grft{ font-family:Verdana; font-size:77%; padding:15px 0; } #ygrp-ft{ font-family:verdana; font-size:77%; border-top:1px solid #666; padding:5px 0; } #ygrp-mlmsg #logo{ padding-bottom:10px; } #ygrp-vital{ background-color:#e0ecee; margin-bottom:20px; padding:2px 0 8px 8px; } #ygrp-vital #vithd{ font-size:77%; font-family:Verdana; font-weight:bold; color:#333; text-transform:uppercase; } #ygrp-vital ul{ padding:0; margin:2px 0; } #ygrp-vital ul li{ list-style-type:none; clear:both; border:1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight:bold; color:#ff7900; float:right; width:2em; text-align:right; padding-right:.5em; } #ygrp-vital ul li .cat{ font-weight:bold; } #ygrp-vital a { text-decoration:none; } #ygrp-vital a:hover{ text-decoration:underline; } #ygrp-sponsor #hd{ color:#999; font-size:77%; } #ygrp-sponsor #ov{ padding:6px 13px; background-color:#e0ecee; margin-bottom:20px; } #ygrp-sponsor #ov ul{ padding:0 0 0 8px; margin:0; } #ygrp-sponsor #ov li{ list-style-type:square; padding:6px 0; font-size:77%; } #ygrp-sponsor #ov li a{ text-decoration:none; font-size:130%; } #ygrp-sponsor #nc { background-color:#eee; margin-bottom:20px; padding:0 8px; } #ygrp-sponsor .ad{ padding:8px 0; } #ygrp-sponsor .ad #hd1{ font-family:Arial; font-weight:bold; color:#628c2a; font-size:100%; line-height:122%; } #ygrp-sponsor .ad a{ text-decoration:none; } #ygrp-sponsor .ad a:hover{ text-decoration:underline; } #ygrp-sponsor .ad p{ margin:0; } o {font-size:0;} .MsoNormal { margin:0 0 0 0; } #ygrp-text tt{ font-size:120%; } blockquote{margin:0 0 0 4px;} .replbq {margin:4;} --> __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]