2014-10-02 19 views
0

我想要做的是從wget直接通過FTP獲取一些特定的文件。我想要使​​用字符串數組獲取文件,並使用與數組結合的通配符來選擇要獲取的文件。我的意思字符串,通配符和wget的數組

例子:

我有一個數組

arr[0]=a 

arr[1]=b 

有一堆目錄中的目錄文件,這我連接到使用wget的,我想所有的啓動文件與a或b(我的數組中的字符串)。

所以我試過如下:

wget $dir${arr[@]}* 

它會得到所有以「A」,但然後嘗試連接到

"http://b*/". 

所以它看起來像如果我增加了啓動文件目錄到數組的每個元素都可以工作,但這不是一個理想的情況。

我目前正在Cygwin的Windows版本中工作,但是我很快就會轉向一些Unix機器。

回答

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*

+0

這似乎正常工作,謝謝。 – amccaffrey 2014-10-02 18:21:15

相關問題