我使用一个函数来分析一个文件,该文件有一个需要下载的文件名列表。我使用curl下载它们,但有没有更好的方法?显示的输出没问题,但输出不显示吗?如果文件未找到,是否有办法处理异常,并在发生某些事情时继续下一个要下载的文件?可能想忽略我为了获取正确的链接名而做的事情,这很痛苦。目录模式具有文件名称的模式。bash下载文件ftp url
#!/bin/bash
# reads from the file and assigns to $MYARRAY and download to Downloads/*
FILENAME=$1
DLPATH=$2
VARIABLEDNA="DNA"
index=0
function Download {
VARL=$1
#VARL=$i
echo $VARL
VAR=${VARL,,}
echo $VAR
VAR2=${VAR:1:2}
echo $VAR2
HOST=ftp://ftp.wwpdb.org/pub/pdb/data/structures/divided/pdb/
HOSTCAT=$HOST$VAR2
FILECATB='/pdb'
FILECATE='.ent.gz'
NOSLASH='pdb'
DLADDR=$HOSTCAT$FILECATB$VAR$FILECATE
FILECATNAME=$NOSLASH$VAR$FILECATE
echo $DLADDR
curl -o Downloads/$FILECATNAME $DLADDR
gunzip Downloads/$FILECATNAME
}
mkdir -p Downloads
while read line ; do
MYARRAY[$index]="$line"
index=$(($index+1))
done < $FILENAME
echo "MYARRAY is: ${MYARRAY[*]}"
echo "Total pdbs in the file: ${index}"
for i in "${MYARRAY[@]}"
do
Download $i
done
我想要写日志文件,我下载前做了一个文件夹,但它似乎并没有在文件夹中要使它。它写入正在执行的文件的根目录,并且它也没有正确写入。我的语法可能是错误的?
curl -o Downloads/$FILECATNAME $DLADDR >> Downloads\LOGS\$LOGFILE 2>&1
我想写日志文件到我下载之前做的文件夹,但它似乎并没有在文件夹中。它写入正在执行的文件的根目录,并且它也没有正确写入。我的语法可能是错误的? curl -o下载/ $ FILECATNAME $ DLADDR >>下载\ LOGS \ $ LOGFILE 2>&1 – MAXGEN