我已将要从SFTP服务器下载的所有文件名存储在一个文件中。该文件存储在我的本地计算机中。
我正在尝试将文件的内容传递给数组。
是否可以将此数组作为参数传递给mget?
类似于mget $my_array
,其中my_array
包含文件名列表。
答案 0 :(得分:1)
首先请注意mget
是lftp 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" )