Ваша исходная форма
command=$(/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user);
$command
будет означать, что $ command
содержит вывод запуска 7zip, как var = $ (...)
сохранит вывод команды в переменной.
Следовательно,
/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user
- это не подмена, а исправление ошибки в скрипте.
Во всяком случае, к настоящему вопросу.
Если вы запустите присвоение переменных в оболочке, вы заметите следующее:
$ lst1=" -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' "
-bash: !'*.config/*': event not found
Итак, у вас есть ошибка в этой строке, так как оболочка будет выполнять подстановку переменных и т. Д. При двойных кавычках ".. . "
. Проблемный элемент - !
, поскольку он использовался bash для ссылки на предыдущие команды в своей истории. Вместо этого используйте одинарные кавычки: '...'
$ lst1=' -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' '
$ echo $lst1
-x@/home/user/exclude_list2.lst -xr!*.config/* -xr!*.cache/*
у меня нет доступа к LFTP в данный момент, но я подозреваю, что вы ищете - единственные пропавшие без вести
параметрический усилитель, который только применим с зеркало
.
Попытка это:
lftp <<<EOF
open -u user,pass ftp2
mirror --reverse --only-newer $programa_dir/* /
bye
EOF
Если вы добавите set xfer: clobber off;
в командный сценарий lftp, это позволит избежать перезаписи существующих файлов.