[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] alterar variavel
From: |
Thobias Salazar Trevisan |
Subject: |
Re: [shell-script] alterar variavel |
Date: |
Thu, 20 Mar 2003 10:57:03 -0300 (EST) |
oi ricardo,
On Thu, 20 Mar 2003, ricardo_marcolino wrote:
> Tenho um probleminha e preciso da ajuda dos amigos
> da lista.
> Tenho um usúario chamado "oracle" e
> no .bash_profile dele está setado uma variável chamada
> ORACLE_SID=dbespla,só que tenho outra sid de banco na
> máquina e preciso alterar através de script o valor
> desta variável.
> Fiz um script desta forma:
> #!/bin/bash
>
> export ORACLE_SID=esplasig
>
> Quando executo o script ele não mostra nenhum erro mas
> não altera o valor da variável de dbespla para esplasig.
ele altera sim, soh que ele altera para o shell que esta rodando
e se for o caso os futuros shell criados a partir deste.
Como voce criou um script, o shell chamara um sub-shell para
executar o seu script. Este sub-shell executa o seu export, mas
logo apos ele termina, assim este export nao afeta o shell pai.
Vamos a um exemplo. Vc colocou estas suas linhas no arquivo
muda.sh
$ cat muda.sh
#!/bin/bash
export ORACLE_SID=esplasig
$ echo $ORACLE_SID
dbespla
Aparece o valor default que esta em .bash_profile
$./muda.sh
$ echo $ORACLE_SID
dbespla
Ele mudou, mas somente no sub-shell criado para executar o seu
script. Como o script terminou, ele voltou para o shell pai e o
seu export nao vai afeta-lo
Agora faca o seguinte:
$ export ORACLE_SID=esplasig
$ echo $ORACLE_SID
esplasig
Mudou no shell atual e nos possiveis sub-shells criados a partir
deste.
$ /bin/bash # criamos um sub-shell
$ echo $ORACLE_SID
esplasig
Como viu o export mudou a variavel no sub-shell criado a partir
dele. Sacou ?!
Thobias.
-------
echo 24883721290304465999833114447114149701898P | dc
-------
Thobias Salazar Trevisan
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------