Pergunta

I am trying to download many files and can do so in a long manner using unix, but how can I do it using a loop function? I have many tables like CA30 and CA1-3 to download. Can I put the table names in a list list("CA30", "CA1-3") and have a loop go through the list?

#!/bin/bash

# get the CA30 files and put into folder for CA30
sudo wget -PO "https://www.bea.gov/regional/zip/CA30.zip"
sudo mkdir -p in/CA30
sudo unzip O/CA30.zip -d in/CA30

# get the CA30 files and put into folder for CA1-3
sudo wget -PO "https://www.bea.gov/regional/zip/CA1-3.zip"
sudo mkdir -p in/CA1-3
sudo unzip O/CA1-3.zip -d in/CA1-3
Foi útil?

Solução

#!/bin/bash

for base in CA30 CA1-3; do
  # get the $base files and put into folder for $base
  wget -PO "https://www.bea.gov/regional/zip/${base}.zip"
  mkdir -p in/${base}
  unzip O/${base}.zip -d in/${base}
done

I have removed sudo - there's no reason to perform unprivileged operations with superuser privileges. If you can write into a particular folder, change the working directory.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top