shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: RES: [shell-script] Script chamando outro script !!!


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: RES: [shell-script] Script chamando outro script !!!
Date: Thu, 8 Sep 2005 10:43:25 -0300

Pois é Fábio,
vc está informando a senha em um subshell. O seu shell principal seria o
vamos.sh, que chama o setvar.sh e por isso este é um subshell do primeiro.
Como a passagem de variável em Shell é por valor e não por referência, é
impossivel vc "exportar" uma variável de um shell filho para o pai. Somente
a recíproca é possível.

No entanto o shell permite executar um script sem chamar um subshell e desta
forma as variáveis criadas estarão visíveis para todo o ambiente. Quem faz
isso é o cmd souce ou ponto (.) e para que isso passe a funcionar. faça como
eu disse na msg anterior:

[sptodev] /home/adpontos > cat vamos.sh
#!/bin/sh
. ./setvar.sh
echo "meu usuario `$USUARIO` e a senha `$SENHA`"

Como vc disse que comprou o meu livro, no capítulo 8 eu trato este tema com
mais detalhes.

Outra coisa: evite chamar um script com 

sh script.sh

É melhor torná-lo executável com o cmd chmod (que basta ser executado uma
única vez) e a partir daí é só chamar o script da seguite forma:

./script.sh

ou se o diretório corrente estiver no seu PATH, basta fazer:

script.sh

Obs: Se vc está no AIX (ksh), as opções do read que te passei na msg
anterior não funcionam (servem somente para o Bash), mas no capítulo 6, eu
dou as dicas de leitura de senha e com prompt sob o ksh. Seria algo +/-
assim

clear
read usuario?"Informe Login Name: "
stty -echo
read senha?"e sua senha ... "
stty echo
sqlplus $usuario/$senha

[ ]s,
Julio
:wq


| -----Mensagem original-----
| De: fabiobat2002 [mailto:address@hidden]
| Enviada em: quinta-feira, 8 de setembro de 2005 10:01
| Para: address@hidden
| Assunto: Re: RES: [shell-script] Script chamando outro script !!!
| 
| 
| Beleza Julio,
| 
| Comprei o seu livro de shell script , é muito bom.
| Seguinte , eu uso na empresa o Unix versao AIX e veja o script abaixo:
| 
| [sptodev] /home/adpontos > cat setvar.sh
| #!/bin/sh
| USUARIO=fabio
| SENHA=fa
| 
| 
| [sptodev] /home/adpontos > cat vamos.sh
| #!/bin/sh
| sh setvar.sh
| echo "meu usuario `$USUARIO` e a senha `$SENHA`"
| 
| 
| 
| ate ai tudo bem(eu acho), mas qdo executo o vamos.sh:
| 
| [sptodev] /home/adpontos > sh vamos.sh
| meu usuario  e a senha
| 
| 
| Nao acontece nada !!!
| Eu sei que nao é seguro colocar a senha em um aqruivi , mas isto é so
| um teste.
| 
| Obrigado 
| 
| --- Em address@hidden, Julio Cezar Neves - DATAPREVRJ
| <julio.neves@p...> escreveu
| > Para a sua traquitana funcionar basta vc fazer:
| > 
| > . ./teste.sh   
| > sqlplus $usuario/$senha
| > 
| > porém, haveria uma tremenda falha de segurança. Se for possível,
| esqueça o
| > script teste.sh e faça teste2.sh assim:
| > 
| > clear
| > read -p "Informe Login Name: " usuario
| > read -sp " e sua senha ... " senha
| > sqlplus $usuario/$senha
| > 
| > Desta forma, a senha seria digitada em modo invisível.
| > 
| > [ ]s,
| > Julio
| > :wq
| > 
| > | -----Mensagem original-----
| > | De: fabiobat2002 [mailto:fabiobat@i...]
| > | Enviada em: quarta-feira, 7 de setembro de 2005 21:10
| > | Para: address@hidden
| > | Assunto: [shell-script] Script chamando outro script !!!
| > | 
| > | 
| > | Ai galera,
| > | 
| > | Criei um script teste.sh que tem:
| > | 
| > | #!/bin/sh
| > | usuario=banco
| > | senha=money
| > | 
| > | e outro teste2.sh :
| > | 
| > | #!/bin/sh
| > | 
| > | #chama o scrip teste.sh
| > | 
| > | sh teste.sh   
| > | sqlplus $usuario/$senha
| > | 
| > | POrem nao consigo pegar as variaves do script teste.sh e jogar no
| > | script teste2.sh.
| > | Alguem poderia me ajudar ?
| > | 
| > | 
| > | 
| > | 
| > | 
| ---------------------------------------------------------------------
| > | 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
| > 
| ---------------------------------------------------------------------
| >  
| > Links do Yahoo! Grupos
| 
| 
| 
| 
| ---------------------------------------------------------------------
| 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
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]