msoliver
(usa Debian)
Enviado em 10/06/2022 - 00:03h
manuca0 escreveu:
msoliver escreveu:
manuca0 escreveu:
Fala, galera! Td bem?
Eu tenho um shell que faz uma consulta no banco e retorna, num arquivo .txt, os dados assim:
mv /home/manuca0/shells/*resultado1* /home/manuca0/shells/extraidos
mv /home/manuca0/shells/*outroResultado* /home/manuca0/shells/extraidos
...
Queria saber como fazer com que um shell:
1. Execute esse shell que faz a consulta e cria o arquivo txt
2. Leia cada linha desse arquivo txt e execute o comando dela (no caso, o mv ...)
Eu sei que para ler a linha eu posso fazer um "while read line; do", só não tô conseguindo fazer esse passo 1 e 2 em um único shell...
valew!
Boa noite Manuca,
Segue:
cat arq.txt
date
cal
free
---------------------------------------------------------------------------------------------------------------
while read line;do
eval "$line";
done<arq.txt
Ou
eval "$(cat arq.txt)"
Ou
awk 'system($0)' arq.txt
Nos três casos, os comandos do arquivo serão executados.
É isso....
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
Marcelo,
tentei a implementação com o while e ele não lê nada... o shell ficou assim:
#/bin/bash
#Declare Variables
dirFile=/home/manuca0/shells/
inputFile="arquivo.out"
redirectFile="saida.txt"
echo "começando a leitura do arquivo"
vFile=`cat $dirFile$inputFile |wc -l`
Tem algo errado?
Uma outra dúvida: esse < do done faz exatamente o que?
obs: o
arquivo.out é o arquivo que possui os comandos citados anteriormente
Sim Manuca tem erro.....
done<arquivo_com_os_comandos
Esse "direcionamento", indica de qual arquivo o while vai ler as "linhas"
while read line;do
eval "$line";
done<arquivo.out
----------------------------------------------------------------------------------------------------------------
A forma mais prática de executar os comandos do arquivo, é:
. arquivo.txt
ponto_espaço_arquivo.txt
O Underline é só para facilitar a leitura :)
Sem eval, laço, read, awk, cat, permissão, etc...
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________