[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
- RES: RES: [shell-script] Script chamando outro script !!!,
Julio Cezar Neves - DATAPREVRJ <=