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

О тонкостях синтаксиса Баша (was: Firefox неправильно восстанавливает запомненную при выходе позицию)



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").  Особым значением наделено то, что внутри _пары_ квадратных скобок внутри одного слова.  Так что никакого исключения тут предусматривать не надо.

>  Да, в случае одиночного [ глоббинг не случится, потому что такой шаблон синтаксически неправилен

Это насколько же «неправильный шаблон», насколько и, скажем, «ls».

>  но вместо того, чтобы выдать сообщение об ошибке в шаблоне, … шелл пойдёт искать бинарий по PATH.

Ну, что ж, прикажем ему выдавать сообщения об ошибках:

	$ shopt -s failglob
	$ echo [a-z]
	bash: no match: [a-z]
	$ echo [
	[

Attachment: signature.asc
Description: PGP signature


Reply to: