Re: Firefox неправильно восстанавливает запомненную при выходе позицию
On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote:
> Eugene Berdnikov <bd4@protva.ru> wrote:
> > On Sat, Sep 28, 2019 at 11:24:18PM +0300, Victor Wagner wrote:
> >> buitin, не builtin синтаксически это все равно команда с параметрами.
> >
> > Синтаксически символ [ не является alphanumeric, поэтому он является не нормальным именем команды, а нелепым исключением.
>
> Почему? Тут вам не Винда, из запретных для файловых имен символов — кажется, только нулевой.
Потому что символ [ ещё является одним из спецсимволов для file globbing,
и если написать, например, [a-z] то сначала Баш попытается раскрыть это
выражение, подобрав из текущего каталога файлы "a", "b" ... "z", и только
если это не удастся, пойдёт искать файл "[a-z]" по каталогам в PATH.
Да, в случае одиночного [ глоббинг не случится, потому что такой шаблон
синтаксически неправилен, но вместо того, чтобы выдать сообщение об ошибке
в шаблоне, классический борновский шелл пойдёт искать бинарий по PATH.
Всё это контринтиутивно. Обычный человек, выросший в нашей современной
культуре программирования, склонен воспринимать [ ... ] как часть
синтаксиса, а не думать постоянно о тонкостях трактовки параметров
со множеством неочевидных "волчьих ям" (piffalls).
Короче, Bourne shell это тяжкий груз наследственности.
> > Перечитал это раз пять, но ниасилил, увы... :)
>
> Имеется в виду Bash Pitfall № 9 по Вулиджу [0].
>
> [0] https://mywiki.wooledge.org/BashPitfalls#if_.5Bgrep_foo_myfile.5D
Спасибо. Да, читается как медицинская карта тяжелобольного.
--
Eugene Berdnikov
Reply to: