Здравствуйте.
Хозяйке на заметку (спасибо raorn@ за снятие с ручника насчёт subshell):

$ zsh
$ echo test | read a; echo $a
test
$ bash
$ echo test | read a; echo $a                                       

$ echo test | ( read a; echo $a )
test
$ 

При этом что-нить вроде такого работает, как ожидается:

| while read first second junk; do
        # something with $first (first IFS-delimited word)
        # ...and with $second too...
        # the rest of the line goes to $junk
done

-- именно потому, что тут-то всё выполняется в одном сабшелле ;)

А, и ещё:

$ echo test:best | ( IFS=: read a b; echo $a/$b )
test/best

-- 
 ---- WBR, Michael Shigorin <[EMAIL PROTECTED]>
  ------ Linux.Kiev http://www.linux.kiev.ua/
_______________________________________________
Sysadmins mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/sysadmins

Ответить