[Sysadmins] bash | read
Michael Shigorin
=?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Чт Янв 17 22:43:44 MSK 2008
Здравствуйте.
Хозяйке на заметку (спасибо 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 <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
Подробная информация о списке рассылки Sysadmins