Package: bash
Version: 3.0-14
Severity: normal

 Either bash's read builtin is buggy, or I'm missing something about
how it's supposed to work.  I thought I could tokenize a string by doing
foo="bar baz"
echo "$foo" | read a b
but after running that, a isn't even defined, let alone set the way I
was expecting.
seq 10 | while read i;do echo $i foo;done
prints the expected 1 foo, ..., 10 foo
seq 10 | read i
doesn't set i, though.

read only seems to work when it's reading from a file (or the
terminal, probably)
$ echo value > foo
$ read i < foo
$ echo $i
value

 BTW, I see the same behaviour on a machine running pure i386 Sarge, with
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)

 For comparison, ksh running on Solaris does:
$ echo foo | read i; echo $i
foo

 sash, ash and dash don't set i when I do echo foo | read i.  Neither
does sh on Solaris;  I guess read is a ksh feature?

-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.9-1-k7
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages bash depends on:
ii  base-files                  3.1.2        Debian base system miscellaneous f
ii  libc6                       2.3.2.ds1-20 GNU C Library: Shared libraries an
ii  libncurses5                 5.4-4        Shared libraries for terminal hand
ii  passwd                      1:4.0.3-30.9 change and administer password and

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to