[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Invocar ficheiro
From: |
Julio Neves |
Subject: |
Re: [shell-script] Invocar ficheiro |
Date: |
Mon, 25 Jun 2001 14:29:14 -0300 |
Olá André,
vamos analisar cada caso.
Como posso dentro de um script, chamar outro scrip; ou um entao
chamar variaveis que estejam guardadas noutro ficheiro.
====================================================================
Resposta:
Basta colocar o nome do 2o. script dentro do primeiro. Caso o 2o. script
te devolva algum valor, sua chamada deverá estar entre crases ou dentro de
uma construção do tipo $(...).
Suponha que dentro do script1 você queira disparar o script2 em
"background" (não sei o termo correto ai em Portugal. Seria "plano
secundário"?), então dentro de script1 basta:
...
script2&
...
suponha agora que você tenha um script chamado prg2 que recebe 2 datas e
devolve a diferença de dias entre elas. Suponha ainda, que vc está dentro
de um script que tem as variáveis data1 e data2 com as datas que vc deseja
calcular a diferença. Então dentro deste script faça:
...
DIAS=`prg2 $data1 $data2`
...
ou então:
...
DIAS=$(prg2 $data1 $data2)
...
Atenção!! O bourne shell (sh) não reconhece a 2a construção.
=========================================================================
E já agora qual a diferença entre um "exit 1" e u "exit 0"
=========================================================================
Resposta:
Este 1 e este 0 que tb poderia ser 2, 3, ... é chamado código de retorno e
será colocado pelo interpretador dentro da variável $?. O uso de código de
retorno é disseminado por todas as instruções shell do Unix/Linux e por
convenção, todo comando bem sucedido devolve um zero, caso contrário um
número maior que zero. Crie um ficheiro chamado ficha1, certifique-se que
não existe o ficha2 e faça os seguintes testes ai no seu prompt:
prompt> ls ficha*
ficha1
prompt> echo $?
0
prompt> ls ficha2
prompt> echo $?
2
A grande utilidade deste código de retorno, é que o comando if no shell
foi feito para testá-lo, isto é, caso o código de retorno de uma intrução
seja zero, o fluxo do programa entrará no then, caso contrário no else.
Certifique-se que não existe um diretório chamado dir e faça:
if cd dir 2> /dev/null
then
echo estou no diretorio dir
else
mkdir dir
echo criei o diretorio dir
cd dir
fi
ou:
[ -d dir ] || mkdir dir
cd dir
==============================================================================
Espero ter sido útil.
Abraços ao povo de Portugal. Adoro seu pais e seus patrícios!!
Julio Cezar Neves
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [shell-script] Invocar ficheiro,
Julio Neves <=