[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