On Thu, Nov 16, 2006 at 03:51:10PM +0300, Alexey Tourbin wrote: > Это понятно. Где-то в недрах zshguide даже объясняется, с чем это > связано. В некоторых командах, типа export и local, удобно, чтобы tilde > expansion тоже работало. > > $ sh -c 'export a=~;echo $a' > /home/at > $ > > Но ведь export является командой, а a=~ -- аргументом этой команды. > Поэтому в ksh был выбран компромиссный вариант, при котором tilde > expansion случается всегда, если тильда идет после знака равно. > > $ ksh -c 'echo a=~' > a=/home/at > $ ksh -c 'echo -a=~' > -a=/home/at > $ > > В bash, по-видимому, выбрали несколько другой компромисс: тильда > раскрывается только тогда, когда выражение ("слово") "совсем похоже" > на присваивание (то есть начинается с "идентификатора"). В общем дело тёмное. $ sh -c 'echo a=~' a=~ $ sh -c 'export a=~; echo "$a"' /home/at $ Может быть теперь export -- это precommand modifier?