Eugene Berdnikov <[email protected]> wrote: > On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote: >> Eugene Berdnikov <[email protected]> wrote: >>> Синтаксически символ [ не является alphanumeric, поэтому он является не >>> нормальным именем команды, а нелепым исключением. >> >> Почему? Тут вам не Винда, из запретных для файловых имен символов — >> кажется, только нулевой. > > Потому что символ [ ещё является одним из спецсимволов для file globbing,
Таки нет, сверьтесь с (info "(bash) Pattern Matching"). Особым значением
наделено то, что внутри _пары_ квадратных скобок внутри одного слова. Так что
никакого исключения тут предусматривать не надо.
> Да, в случае одиночного [ глоббинг не случится, потому что такой шаблон
> синтаксически неправилен
Это насколько же «неправильный шаблон», насколько и, скажем, «ls».
> но вместо того, чтобы выдать сообщение об ошибке в шаблоне, … шелл пойдёт
> искать бинарий по PATH.
Ну, что ж, прикажем ему выдавать сообщения об ошибках:
$ shopt -s failglob
$ echo [a-z]
bash: no match: [a-z]
$ echo [
[
signature.asc
Description: PGP signature

