On Wed, Oct 03, 2007 at 12:54:05AM +0300, Led wrote: > 03.10.07, Alexey Tourbin : > > > > $ echo 'executable(cat)' |sh -c 'IFS="()" read t r; echo $t $r' > > executable cat > > $ echo 'executable(cat)' |ash -c 'IFS="()" read t r; echo $t $r' > > executable cat > > $ echo 'executable(cat)' |ksh -c 'IFS="()" read t r; echo $t $r' > > executable cat) > > $ > > > > Какой из шеллов "на самом деле" прав? > > http://www.opengroup.org/onlinepubs/007908799/xcu/chap2.html > > Если перед "read ..." ставить ";" или поставить его с новой строки, то > все шеллы правы. Но некоторые правее. :) $ echo 'executable(cat)' |ksh -c 'IFS="()"; read t r; echo $t $r' executable cat $ echo 'executable(cat)' |zsh -c 'IFS="()"; read t r; echo $t $r' executable cat) $ Похоже на явный глюк в ksh -- типа IFS "не полностью присваивается". (А zsh вообще особо не претендует на совместимость...)