Portanto, sou relativamente novo no bash scripting, mas quero um trabalho bash que:
Crie um carimbo de data e hora pós-datado. (como um var ou para um arquivo)
Ler linhas de um arquivo chamado feeds.txt.
Separe a string numérica da string inteira em duas variáveis $ feedNum e $ wholeString.
Em seguida, execute um comando cat para criar ou anexar um novo arquivo chamado $ wholeString anexando o conteúdo de timestamp.txt a esse arquivo.
Por fim, execute um comando wget para inserir $ feedNum na cadeia url e envie a resposta do wget para o arquivo $ wholeString criado anteriormente.
Aqui está o que eu tenho.
feeds.txt parece (eventualmente será mais longo):
8147_feed_name.xml
19176_nextfeed_name.xml
E o roteiro que eu montei parece com isso.
#Changes the directory to the correct location
cd /home/scripts
# Inserts the proper timestamp in the file , postdating for one hour.
date -d '1 hour ago' "+%m/%d/%Y %H:%M:%S" >/home/scripts/timestamp.txt
#Loop Logic
for feedNum in 'cat feeds.txt |cut -d _ -f 1';do
for wholeString in 'cat feeds.txt'; do
cat /home/scripts/timestamp.txt >>/home/scripts/tmp/$wholeString ;
wget https\://some.url.com/reports/uptimes/${feedNum}.xml?\&api_key=KEYKEYKEYKEY\&location=all\&start_date=recent_hour -O ->>/home/scripts/tmp/$wholeString;
done
done
O meu problema é que ele é executado 4 vezes e, portanto, se eu eliminar o cat e o wget e substituí-los por um eco simples, como este,
#Changes the directory to the correct location
cd /home/scripts
# Inserts the proper timestamp in the file , postdating for one hour.
date -d '1 hour ago' "+%m/%d/%Y %H:%M:%S" >/home/scripts/timestamp.txt
#Loop Logic
for feedNum in 'cat feeds.txt |cut -d _ -f 1';do
for wholeString in 'cat feeds.txt'; do
echo $feedNum $wholeString
done
done
Eu recebo uma saída como essa, em que as linhas superior e inferior estão corretas. Os dois do meio são um mix-mash.
8147 8147_feed_name.xml
8147 19176_nextfeed_name.xml
19176 8147_feed_name.xml
19176 19176_nextfeed_name.xml
Eu entendo por que está fazendo isso, mas não como corrigi-lo.