The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск файлового менеджера Midnight Commander 4.8.30, opennews (ok), 14-Авг-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


46. "Выпуск файлового менеджера Midnight Commander 4.8.30"  +4 +/
Сообщение от Аноним (16), 14-Авг-23, 10:37 
Посыпется на архивах, содержащих пробел в имени. Пора бы уже брать себе в привычку оборачивать переменные в кавычки.
Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск файлового менеджера Midnight Commander 4.8.30"  +1 +/
Сообщение от rshadow (ok), 14-Авг-23, 10:44 
Полностью с тобой согласен.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск файлового менеджера Midnight Commander 4.8.30"  +/
Сообщение от Аноним (38), 14-Авг-23, 12:11 
Только переменные в кавычках не поддерживают глоббинг, а это значит, будут проблемы, где файлы с переносом строки в имени или спецсимволами навроде доллара и кавычек -- шелл может всё это экранировать самостоятельно и вручную ты ничего не сделаешь универсально. И с регулярками могут быть самые разные сложности. А добавишь глоббинг и будет в два раза больше проблем, но уже с другими вводными.

Плохой совет, не годный. Но, я полагаю, любой, кто планирует использовать шелл, должен быть готов к конструкциям вида 'rty=qwe; cmd '"'"'var="${bar%/*}";'"'"' arg;' (реальный пример). Просто надо понимать ограничения, особенно, если это работа с произвольными данными или тем более именами файлов. С файлами вообще никто не умеет работать. Есть простой способ через find, конечно, но это с сабшеллом и опять же глоббингом.

Поэтому, KISS вполне имеет место быть, всё равно, чтобы сделать универсально, сначала придётся хорошо попотеть, а это время.

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

73. "Выпуск файлового менеджера Midnight Commander 4.8.30"  +/
Сообщение от Аноним (16), 14-Авг-23, 12:24 
> переменные в кавычках не поддерживают глоббинг

А должны? На примере с extract делай глоббинг сам, вручную вбивая его в шелл, то есть за пределами функции: extract ./плохоеимяфайла* -- далее шелл его заглобит, и extract будет работать с уже зарезольвленным именем, в котором хоть перенос строки, хоть черт лысый. Твоя ошибка в том, что тебе кажется, что функция должна уметь все на свете, -- а это противоречит single-responsibility principle.

> будут проблемы, где файлы с переносом строки в имени или спецсимволами навроде доллара и кавычек

Не будут.

> с регулярками могут быть самые разные сложности

Какие?

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

75. "Выпуск файлового менеджера Midnight Commander 4.8.30"  +/
Сообщение от Аноним (38), 14-Авг-23, 12:34 
Любые незаглобленные переменные опасные. Как обойти то, что extglob не поддерживает имена файлов, например, с собачкой, когда я хотел матчить в нём несколько вариантов расширения у файла, я так и не придумал.
Ответить | Правка | Наверх | Cообщить модератору

192. "Выпуск файлового менеджера Midnight Commander 4.8.30"  +/
Сообщение от warlock66613 (ok), 15-Авг-23, 07:58 
Этого недостаточно. Ещё проблемой будут имена файлов, начинающиеся с минуса.
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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