The OpenNET Project / Index page

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



"Доступен ShellCheck 0.9, статический анализатор для shell-скриптов"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Доступен ShellCheck 0.9, статический анализатор для shell-ск..." +/
Сообщение от швондер (?), 01-Янв-23, 12:23 
>[оверквотинг удален]
>     echo "# filename for ${file@Q} changed to ${fname@Q}"
> }
> file="$@"
> [[ -n "${file}" ]] || { echo -e "Usage:\t$0 FILENAME"; exit 1;
> }
> fname="${file##*/}"
> fpath="${file%/*}"
> [[ -d "${fname}" ]] && process_dirname
> Ещё раз, дело именно в синтаксической ошибке от $(?()) и не в
> чём-либо ещё.

вы не поверите, но этот код зависит от файлов, которые находятся - или не находятся. Предлагаю собрать локально 5.2 и 5.1, и убедиться, что оба интерпретатора работают идентично, вызывая прямо ~/src/bash-5.1/bash ./script.sh и ~/src/bash-5.2/bash ./script.sh
Трюк с VAR=$(echo $VAR) это фактически аналог разыменовывания указателя, получения конкретного значения переменной, вместо вычисления переменной каждый раз. Именно для него вам понадобились здесь shopt. В тонком месте и порвалось, ни одно кодеревью этот код не прошел бы; но всё-таки, врядли дело в версии баш. прошу проверить через выполнение именно разными версиями, установленными локально. С новым годом!

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

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



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

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