В оболочке zsh
,
setopt EXTENDED_GLOB
printf '%s\n' a[[:digit:]](#c1,2)(.)
Шаблон a[[:digit:]](#c1,2)(.)
будет соответствовать любому обычному файлу, имя которого начинается с a
, за которым следует одна или две цифры. (.)
в конце гарантирует, что мы получаем только имена обычных файлов, а [[:digit:]](#c1,2)
соответствует одной или двум цифрам.
В sh
или bash
и т. д.,
printf '%s\n' a[[:digit:]] a[[:digit:]][[:digit:]]
Здесь перечислены все имена, которые начинаются с a
и затем имеют одну или две цифры. Часто (мы используем один шаблон для имен с одной цифрой, а другой — для имен с двумя цифрами ). Не факт, что вы получите только имена обычных файлов, хотя (вы также можете получить имена каталогов и т. д. ), и если один или другой шаблон (или оба )не совпадают любое имя , шаблон останется нераскрытым (используйте shopt -s nullglob
в bash
, чтобы вместо этого удалить не -не совпадающие шаблоны ).
Чтобы отсеять любой не -обычный файл, используйте цикл:
for name in a[[:digit:]] a[[:digit:]][[:digit:]]; do
if [ -f "$name" ]; then
printf '%s\n' "$name"
fi
done
Здесь мы применяем явный -f
тест к каждому имени. Этот тест будет истинным , если имя относится к обычному файлу (или к символической ссылке на обычный файл ).Если тест верен , мы печатаем имя.
В итоге я отказался от клиентского интерфейса NordVPN и перешел на Openpyn. Это скрипт Python с открытым -исходным кодом для OpenVPN и некоторых сервисов Nord API. Ссылка на проект:https://github.com/jotyGill/openpyn-nordvpn
Используемая команда:sudo openpyn ca -f -d -r -t 10 --allow [Ports to Allow] --silent --p2p
Хотя это и не идеально, в случае отключения сервера он автоматически попытается найти другой сервер для подключения. У меня Openpyn работает в режиме демона уже несколько дней, и соединение все еще работает.