Eugene Berdnikov <b...@protva.ru> wrote: > On Sun, Sep 29, 2019 at 01:18:01AM +0300, Dmitry Alexandrov wrote: >> Eugene Berdnikov <b...@protva.ru> 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