将数组作为参数传递给mget命令

时间:2016-09-01 13:10:19

标签: bash lftp

我已将要从SFTP服务器下载的所有文件名存储在一个文件中。该文件存储在我的本地计算机中。

我正在尝试将文件的内容传递给数组。

是否可以将此数组作为参数传递给mget?

类似于mget $my_array,其中my_array包含文件名列表。

1 个答案:

答案 0 :(得分:1)

首先请注意mgetlftp command,因此需要与-c的{​​{1}}开关一起使用。

现在,考虑到数组包含您可以执行的文件的完整路径

lftp

以匿名用户身份获取这些文件。

示例

lftp -c mget "${array[@]}"

会抓取两个有问题的文件。

为什么要双引号 array=( "ftp://ftp.redhat.com/redhat/brms/5.3.1/SHA256SUM" "ftp://ftp.redhat.com/redhat/brms/5.3.1/brms-p-5.3.1.GA-src.zip" ) lftp -c mget "${array[@]}"

当扩展发生在双引号内时,每个参数都会扩展为一个单独的单词,因此您可以处理包含空格的文件名的分词(尽管很少见)。

修改(请记住,这不在${array[@]}会话中,而是在{local}的lftp会话中

假设您只有bash数组中的文件名,如下所示

bash

首先:

array=( "SHA256SUM" "brms-p-5.3.1.GA-src.zip" )