Stanislav Maslovski -> [email protected] @ Sat, 2 Aug 2008
12:09:19 +0400:
>> Проверить можно, заменив eval на : ("do nothing").
>>
>> Вообще же обычно если хочется сделать eval выводу команды, то надо писать
>>
>> eval "`cmd`"
SM> Согласно документации на POSIX шелл:
SM> "The eval utility shall construct a command by concatenating arguments
SM> together, separating each with a <space>. The constructed command shall
SM> be read and executed by the shell."
SM> То есть, строго говоря, в общем случае двойные кавычки не обязательны.
SM> Зависит от желаемого эффекта.
SM> Но в _моем_примере_ двойные кавычки именно там и нужны.
Ключевое слово в моей фразе - "обычно".
>> Парсить строку eval будет сам. Хотя от GLOB_SUBST, согласно
>> документации, это не спасает.
SM> А ты проверил?
Нет. "Согласно документации".
SM> Если в моем примере делать так
SM> % eval "`./test`"
SM> то результат не подвергнется filename generation.
SM> Внутри двойных кавычек "*" -- простой символ.
Может, и подвергнется, но поскольку кавычки внешние по отношению к
command substitution, то * оказывается quoted. А filename generation
работает только на unquoted.
Правила операций с командной строкой в шелле отнюдь не отличаются
простотой, что да, то да...
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: [EMAIL PROTECTED]
The Eclipse Platform is an open and extensible platform
for anything and yet nothing in particular.
-- apt-cache show eclipse-platform
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]