[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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- script que chama programa,
Germano Barreiro <=