컬 for 루프를 사용하여 데이터를 다운로드할 수 없습니다.

컬 for 루프를 사용하여 데이터를 다운로드할 수 없습니다.

다음 링크에서 데이터를 다운로드하려고 합니다.

export ICTP_DATASITE='http://clima-dods.ictp.it/data/Data/RegCM_Data/EIN15/1990/'

코드는 다음과 같습니다.

for type in "air hgt rhum uwnd vwnd"
do
    for hh in "00 06 12 18"
    do
       curl -o ${type}.1990.${hh}.nc \
       ${ICTP_DATASITE}/EIN15/1990/${type}.1990.${hh}.nc
    done
done

하지만 다운로드가 되지 않고 다음과 같은 오류 메시지가 나타납니다.

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: hgt
curl: (6) Could not resolve host: rhum
curl: (6) Could not resolve host: uwnd
curl: (6) Could not resolve host: vwnd.1990.00
curl: (7) Could not resolve host: vwnd.1990.00
curl: (7) Could not resolve host: vwnd.1990.00
curl: (6) Could not resolve host: 18.nc
curl: (3) <url> malformed
curl: (6) Could not resolve host: hgt
curl: (6) Could not resolve host: rhum
curl: (6) Could not resolve host: uwnd
curl: (6) Could not resolve host: vwnd.1990.00
curl: (7) Could not resolve host: vwnd.1990.00
curl: (7) Could not resolve host: vwnd.1990.00
curl: (6) Could not resolve host: 18.nc

도와주세요.

답변1

행의 루프 항목에서 큰따옴표를 제거합니다 for. 항목 목록이 아닌 단일 문자열("air hgt rhum uwnd vwnd" 및 "00 06 12 18")을 반복합니다.

또한 typebash에서는 예약어입니다. 대신 다른 변수 이름(예: )을 사용하십시오 t.

마지막으로 변수를 사용할 때는 항상 큰따옴표로 묶어야 합니다.

이 모든 것을 종합해 보면 다음과 같습니다.

export ICTP_DATASITE='http://clima-dods.ictp.it/data/Data/RegCM_Data/EIN15/1990/'

for t in air hgt rhum uwnd vwnd; do
    for hh in 00 06 12 18; do
       curl -o "${t}.1990.${hh}.nc" \
       "${ICTP_DATASITE}/EIN15/1990/${t}.1990.${hh}.nc"
    done
done

관련 정보