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

[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



reply via email to

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