2016-09-01 3 views
0

Я сохранил все имена файлов, которые я хочу загрузить с SFTP-сервера в файл. Этот файл хранится на моей локальной машине.передать массив в качестве аргумента команде mget

Я пытаюсь передать содержимое файла в массив.

Можно ли передать этот массив в качестве аргумента для mget?

что-то вроде mget $my_array где my_array имеет список имен файлов.

+0

Возможный дубликат [Передача массивов в качестве параметров в bash] (http://stackoverflow.com/questions/1063347/passing-arrays-as-parameters-in-bash) – Inian

+1

что-то вроде 'mget '$ {my_array [@]}" '? – Inian

+0

@ Иниан: не совсем дубликат или не так ли? – sjsam

ответ

0

Прежде всего помните, что mget является lftp command, поэтому его необходимо использовать с переключателем -clftp.

Теперь, учитывая, что массив содержит полный-путь к файлам, вы могли бы сделать

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[@]}?

Когда расширение происходит в двойных кавычках, каждый параметр расширяется до отдельного слова, поэтому вы можете разрешать разбиение слов на имена файлов с пробелами в них (хотя и редко).


Edit (Remeber это не в сеансе lftp но сеанс bash на локальном хосте)

Предположим, у вас есть только имена файлов в массиве Баш как ниже

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

Первая до:

array=("${array[@]/#/ftp://ftp.redhat.com/redhat/brms/5.3.1/}") 
# We have just added the ftp server name + path before every file name in array 
lftp -c mget "${array[@]}" # Download the files just like that 
+0

У меня нет абсолютного пути в массиве. У меня есть только имена файлов. –

+0

@DebajyotiMajumdar: У вас есть адрес сервера +, где находятся файлы? – sjsam

+0

@DebajyotiMajumdar: Я не уверен, что вы уже на сессии lftp? Пожалуйста, уточните этот вопрос. – sjsam

Смежные вопросы