Re: О тонкостях синтаксиса Баша (was: Firefox неправильно восстанавливает запомненную при выходе позицию)
On Sun, Sep 29, 2019 at 08:19:53PM +0300, Dmitry Alexandrov wrote:
> Eugene Berdnikov <bd4@protva.ru> wrote:
> > On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote:
> >> Eugene Berdnikov <bd4@protva.ru> wrote:
> >>> Синтаксически символ [ не является alphanumeric, поэтому он является не нормальным именем команды, а нелепым исключением.
> >>
> >> Почему? Тут вам не Винда, из запретных для файловых имен символов — кажется, только нулевой.
> >
> > Потому что символ [ ещё является одним из спецсимволов для file globbing,
>
> Таки нет, сверьтесь с (info "(bash) Pattern Matching"). Особым значением наделено то, что внутри _пары_ квадратных скобок внутри одного слова. Так что никакого исключения тут предусматривать не надо.
И юзер всё это должен держать в голове? А также то, что [ может быть именем
файла, который баш был бы готов запустить (если бы не одноимённый builtin),
а вот с { и ( это уже не так. Лёгкий вынос мозга... Гораздо легче было бы
считать, что [] {} () это строго парные синтаксические разделители.
Тем более что команда [ ну очень хочет получить последним аргументом ].
Не надо убеждать меня в том, что алгоритм обработки параметров в баше
непротиворечив. Я говорю о том, что контринтуитивен для тех, кто вырос
в нашей сложившейся среде и культуре программирования.
--
Eugene Berdnikov
Reply to: