Если переключение на zsh
является опцией:
if ()(($# > 0)) /opt/presto-server-*(N/); then
echo there are directories matching that pattern
fi
Где
() compound-command args
— анонимная функция с аргументами ((...))
:составная команда, которая оценивает ...
арифметическое выражение и возвращает успех , если результатом является число, отличное от 0. $# > 0
:арифметическое выражение, которое принимает значение 1, если$#
(количество аргументов этой анонимной функции )больше 0. (N/)
:квалификаторы glob:N
для включения nullglob
для этого одного glob, /
для выбора только файлов типа каталог(изменить на -/
, чтобы также включать символические ссылки на каталоги ). Это не очень эффективно, так как вычисляется весь список каталогов (, для которых zsh
необходимо выполнить lstat()
для каждого совпадающего файла ), которые впоследствии сортируются, в то время как поиск только одного каталога был бы достаточный.
Вы можете изменить *
на <->-<->
, чтобы точно соответствовать последовательности чисел, разделенных -
.
Конечно, в пределах bash
вы всегда можете сделать:
if zsh -c '()(($# > 0)) /opt/presto-server-<->-<->(N/)'; then
echo there are directories matching that pattern
fi
Сами ключи вообще не имеют области действия. :Любой ключ, добавленный в связку ключей apt
, считается допустимым ключом подписи.
В репозиториях в стиле Debian -подпись применяется ко всему репозиторию :каждый файл репозитория Release
подписывается,либо в виде отдельной подписи (Release.gpg
), либо встроенной(InRelease
). Подпись указывает, какой ключ использовался для подписи файла (или какие ключи, поскольку файл может быть подписан несколькими ключами ). Все остальное проверяется по информации из файла Release
. См. Как гарантируется подлинность пакетов Debian? для получения подробной информации.
Если вы хотите указать, какие ключи следует использовать для проверки данного репозитория, вы можете сделать это в описании репозитория в sources.list
, а не при добавлении ключа в набор ключей apt
; см. параметр Signed-By
в на справочной странице sources.list
.