ftp
не кажется мне соответствующим инструментом, чтобы сделать это с. Я попробовал бы lftp
вместо этого. Поскольку у Вас есть он, написал сценарий строки:
nmap N*.TXT N_`date "+%H%M%N"`.TXT
Доберитесь оценил однажды и затем расширился до текущей даты, с тех пор это только будет используемым в качестве расширенной формы. То, что Вы хотите сделать, заставляют удаленную сторону делать это расширение для Вас, которые я не полагаю, что можно сделать с регулярным ftp.
Что-то вроде этого "могло" бы работать через lftp
:
$ lftp -u user,password IP <
У меня нет доступа к FTP-серверу в настоящее время, таким образом, я не могу протестировать это. Если это работает затем, Вы можете изменять его так, чтобы date
команда работает на удаленном сервере.
Как насчет этого? Меньше кавычек, скобок, скобок и прочего синтаксиса!:
L='e.cfg e_randr.cfg exehist.cfg etc'
for i in $L
do
echo wget -c "$JEF/$i" #$JEF is defined in my ~/.bashrc script
done
Это самый старый и самый распространенный способ сделать это. Это понимает больше людей. Массивы - это расширения, которые я никогда не использовал.
В bash
или ksh
вам нужно перебрать все элементы массива с помощью:
for i in "${L[@]}"; do wget ....; done
$ {L [@ ]}
будет расширен до всех элементов массива L
и для
используется для итерации по ним.
Если вы используете $ L
is bash
или ksh
, он будет вести себя как $ {L [0]}
т.е. В вашем случае вы получите только первый элемент массива.
Я сам нашел ответ, просмотрев переменные массива в Руководстве для начинающих по Bash.
Вот каким должен быть сценарий:
L=('e.cfg' 'e_randr.cfg' 'exehist.cfg' 'module.battery.cfg' 'module.clock.cfg' 'module.conf.cfg' 'module.everything-apps.cfg' 'module.everything-files.cfg' 'module.everything.cfg' 'module.gadman.cfg' 'module.ibar.cfg' 'module.notification.cfg' 'module.pager.cfg' 'module.syscon.cfg' 'module.tasks.cfg')
pushd /usr/share/enlightenment/data/config
for i in ${L[*]}
do
sudo wget -c $JEF/$i
done
popd