The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Доступен ShellCheck 0.9, статический анализатор для shell-скриптов"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Доступен ShellCheck 0.9, статический анализатор для shell-ск..." +/
Сообщение от швондер (?), 29-Дек-22, 12:02 
>[оверквотинг удален]
> именно тут (похоже, дело именно во вложенной ?(), но если с
> ней что-нибудь сделать, glob не будет работать, как надо)
> line 90: syntax error near unexpected token `('
> shopt -s extglob
> fname=$(shopt -s failglob;shopt -s nocaseglob;echo "${fname}"/?("${BASH_REMATCH[1]}")"${BASH_REMATCH[2]}${BASH_REMATCH[3]}"$pext)
> [[ 0 -ne $? ]] && echo '#glob match failed' && exitnow
> shopt -u extglob
> До bash-5.2 всё было норм, 0 проблем с файлами. Этот скрипт генерирует
> страничку для веббраузера, и в один прекрасный день он просто перестал
> это делать(

У меня ваш код работает ожидаемо в GNU bash, версия 5.1.16(1)-release (x86_64-pc-linux-gnu)

в 5.1 эта ошибка синтаксиса вылетает, если extglob не задавать, "?()" будет некорректным. Ваш пример загрязнен BASH_REMATCH и прочими неимеющими отношения к вопросу деталями. это затрудняет диагностику.
Могу предположить, что если у вас вылетает не описанная вами ошибка про line 90, но просто не находится файл, то беда в том, что нет матча на содержимое ?(), при failglob будет ошибка матчинга. То есть, вы указали что мол вам и не нужно то, что в скобках, но это все равно будет fail globbing.
В генте 5.2 ещё маскирован, как обновится - проверю ещё раз ваш кейз. Должен работать.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Доступен ShellCheck 0.9, статический анализатор для shell-скриптов, opennews, 27-Дек-22, 12:01  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру