我尝试做的是通过FTP直接从wget获取一些特定文件。我想使用字符串数组获取文件,并使用通配符与数组结合来选择获取哪些文件。
我的意思是:
我有一个数组
arr[0]=a
arr[1]=b
我使用wget连接目录dir中有一堆文件,我想要所有以a或b开头的文件(我的数组中的字符串)。
所以我尝试了以下内容:
wget $dir${arr[@]}*
它将获得以" a"开头的所有文件。但然后尝试连接到
"http://b*/".
所以看起来如果我将目录添加到数组的每个元素它可以工作,但这不是一个理想的情况。
我目前正在使用Cygwin的Windows版本,但我很快就会转向一些Unix机器。
答案 0 :(得分:1)
连接字符串和数组很少有所需的效果。改为使用for循环:
arr=(a b)
for var in "${arr[@]}"
do
wget "$dir$var*"
done
您还可以通过参数扩展获得类似于您的代码的内容:
dir="ftp://host/dir/"
arr=(a b)
arr=( "${arr[@]/%/*}" ) # append asterisks
echo wget "${arr[@]/#/$dir}" # prepend dir
打印wget ftp://host/dir/a* ftp://host/dir/b*
。