[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: