Subject: bin/16358: /bin/sh doesn't support `read' in a posix-like manner
To: None <>
From: None <>
List: netbsd-bugs
Date: 04/15/2002 20:07:59
>Number:         16358
>Category:       bin
>Synopsis:       /bin/sh doesn't support `read' in a posix-like manner
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 15 03:09:01 PDT 2002
>Originator:     Luke Mewburn
>Release:        NetBSD 1.5ZA
Luke Mewburn  <>
Luke Mewburn     <>
Wasabi Systems - NetBSD hackers for hire
NetBSD - the world's most portable UNIX-like operating system
System: NetBSD 1.5ZA NetBSD 1.5ZA (ARGO) #0: Tue Jan 22 11:21:31 EST 2002 lukem@hippolyte:/var/scratch/obj.i386/sys/ARGO i386
Architecture: i386
Machine: i386
	sh(1) claims to be in the process of being changed to POSIX 1003.2
	conformance.  It's currently broken with respect to
	information piped to `read'.  E.g,
		echo 1 2 3 | read a b c
		echo $a
	prints a blank line.

	I'm told that this is the "traditional" shell behaviour, yet I
	understand that POSIX states that $a should contain `1' at
	this point.

	The workaround is to either not use `read', or to do
		echo 1 2 3 > tmpfile
		read a b c < tmpfile
		rm tmpfile

	For what it's worth, Solaris 2.6's /usr/xpg4/bin/sh and /bin/ksh
	correctly prints `1', and its /bin/sh prints a blank line as well.

	See above.

	Ask our /bin/sh maintainers nicely? :-)
	/bin/ksh is similarly broken.