LinuxForum.Fans
Тема

[bash] Сформировать и выполнить команду: возник затык

Автор: Iskan_Der 5 сообщений 1704 просмотров
#171471

Сооружаю небольшой скриптик, одной из задач которого является загрузка определенного файлика с помощью lftp. С этой целью необходимо сформировать и выполнить команду такого вида:

text
lftp -c "lcd /some/folder && get \"http://www.aaa.bbb/file.zip\" -o "local_file_name.zip\""

Имеются переменные:
- $url - откуда качать;
- $folder - куда сохранять;
- $filename - локальное имя файла.

Скрипт выглядит примерно вот так:

text
command="lftp -c \"lcd ${folder} && get \\\"${url}\\\""

if [ "${filename}" ]; then command="$command -o \\\"${filename}\\\"" fi

command="$command\"" echo $command $command

В $command вроде получается нужная команда, однако в итоге имею ошибку:
[console]Unknown command: `"lcd'[/console]
Подскажите, плз, что ж я не так делаю-то? Заранее спасибо.

#171488

может стоит так:

text

COMMAND="lcd \"${folder}\" && get \"${url}\""
if [ "${filename}" ]; then
    COMMAND="$COMMAND -o \"${filename}\""
fi

lftp -c "$COMMAND"

и ковычек меньше, и слешей, и читается лучше...

#171490

А что за команда lcd? Это самая первая строчка. Может быть должна быть команда cd ? wink

#171491
elve написал:
А что за команда lcd? Это самая первая строчка. Может быть должна быть команда cd ?

это команда самого клиента lftp.

#171598

Fat-Zer, большое спасибо, так сработало. С формированием команды я и впрямь перемудрил что-то :)

Войдите или зарегистрируйтесь, чтобы ответить.