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

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

script que chama programa


From: Germano Barreiro
Subject: script que chama programa
Date: Tue, 29 Apr 2003 13:09:00 -0300 (ART)

Ola a todos

Ainda sou um iniciante em shell script e, estes dias,
tive que fazer um script que chamava um programa que a
cada chamada gerava duas linhas de texto para a saida,
incluindo aparentemente uma quebra de linha (alias, a
primeira saida ja e uma quebra de linha).
Basicamente, coloquei dentro de um laco for que
chamava repetidas vezes o programa a seguinte
instrucao:

IFS=" " #meu IFS e somente o espaco
comando="$programa \"$argumento\" >> $arquivo"
`comando`
IFS=oldIFS

A mudanca do IFS para somente espaco (no shell
descobri estar definido tambem para tab ou nova
linha), e justamente uma tentativa de o erro que vou
descrever, que alias nao funcionou.
O problema foi o seguinte: apos o programa mandar a
nova linha, o shell (nao sei se um subshell ou o shell
chamador, e isto e outra duvida) tentava interpretar a
saida do programa como um comando e me exibia a
mensagem "file not found".
Eu ja consegui resolver mudando o codigo para:

IFS=" " #meu IFS e somente o espaco
comando="$programa \"$argumento\""
vresp=`comando`
echo $vresp >> $arquivo
IFS=oldIFS

Mas portanto basicamente meus problemas sao dois:

1. Entender porque o primeiro codigo nao funcionou. Ou
seja, por que o que vem depois de uma nova linha, na
saida de um programa chamado pelo script, o shell
tenta interpretar?
2. Existe uma forma melhor que a que usei para
implementar a solucao?

Obrigado desde ja
Germano


_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3, 
filtro contra spam. 
http://br.mail.yahoo.com/


reply via email to

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