On Mon, 30 Nov 2009, Greg Wooledge wrote: > On Mon, Nov 30, 2009 at 11:46:03AM +0100, Lhunath (Maarten B.) wrote: > > Don't use pipelines to send streams to read. Use file redirection instead: > > > > Instead of ''command | read var'' > > Use ''read var < <(command)'' > > > > I hardly see a need to change the existing implementation. > > Or for the original problem case, use a here string: > > IFS=: read a b <<< "1:2" > > Between process substitutions (the <(command) thing) and here strings, > you should be able to do all your reads without subshells.
Or, to be portable, use a here document: IFS=: read a b <<. 1:2 . This works with the output of commands, too: IFS=- read year month day <<. $(date +%Y-%m-%d) . -- Chris F.A. Johnson, webmaster <http://woodbine-gerrard.com> =================================================================== Author: Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress) Pro Bash Programming: Scripting the GNU/Linux Shell (2009, Apress)