7z из сценария удара не исключит каталоги

Если вы зарегистрированы на Satellite (у вас есть подписка на rhn-инструменты, так что я ставлю на это), ACME repo, вероятно, является дочерним каналом, на который подписана ваша система. В этом случае он становится доступен для yum посредством модуля rhnplugin, который перечисляет все каналы, на которые вы подписаны, и представляет yum, как если бы они были репозиториями.

Название репо также выглядит как идентификатор спутникового канала, но это всего лишь предположение, основанное на том, как это название структурировано.

Вы можете подтвердить это командой rhn-канала :

root@xxxxxxlp03 ~ $ rhn-channel -l
epel6-64bit
rhel-x86_64-server-6
rhn-tools-rhel-x86_64-server-6
1
24.09.2014, 06:17
2 ответа

Ваша исходная форма

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/*
1
27.01.2020, 23:52

Это то, чего я не ожидал.

lst1=' -xr@/home/me/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' -xr!'*.local/*' '
7z a $lst1 -v2048M arch0.7z /home/me

делайте трюк, пока я думал, что одиночная кавычка в -xr!'.config/' положит конец присваиванию переменных, на самом деле это работает как часть аргумента. Также отлично работает, если моя переменная является массивом.

Кстати, escaping с "!" не сработает, 7z говорит "Error: Неправильная командная строка".

0
27.01.2020, 23:52

Теги

Похожие вопросы