Como combinar vários comandos em loops aninhados?

3

Eu tenho três comandos em um script de shell: wget , 7z e rm .

Dentro de list.txt

URL1 archive_01.zip  
URL2 archive_02.zip  
URL2 archive_03.zip

Download de arquivos:

while read -r url filename; do
    wget -O "$filename" "$url";
done < list.txt  

$ ls
archive_01.zip
archive_02.zip
archive_03.zip

Extrair arquivos:

for file in *zip; do
    7z x $file;
done

$ ls
archive_01.zip
archive_02.zip
archive_03.zip
folder_01
folder_02
folder_03

Excluir arquivos:

rm *zip

É possível tornar esses três comandos em loops aninhados? Se sim, como?

Também estou curioso, porque os comandos acima serão executados assim (se não estiver errado):

Download URL1 > Download URL2 > Download URL3
Extract Archive1 > Extract Archive2 > Extract Archive2
Delete Archive1 > Delete Archive2 > Delete Archive3

como fazer a execução ser assim?

Download URL1 > Extract Archive1 > Delete Archive1
Download URL2 > Extract Archive2 > Delete Archive2
Download URL3 > Extract Archive3 > Delete Archive3

    
por Hidayats 25.10.2017 / 20:06

2 respostas

2

Algo parecido com isto?

#! /bin/bash -

while read -r url filename; do
    wget -O "$filename" "$url"
    7z x "$filename"
    rm -- "$filename"
done < list.txt
    
por 25.10.2017 / 20:10
0
while read -r url filename; do
  wget -O "$filename" "$url";
  7z x $filename
  rm $filename
done < list.txt  

deve fazer o que quiser.

    
por 25.10.2017 / 20:10