*Configuration Information* [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-redhat-linux-gnu' -DCONF_VENDOR='redhat' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 uname output: Linux bighorn 2.6.9-67.0.4.ELsmp #1 SMP Sun Feb 3 07:08:57 EST 2008 i686 i686 i386 GNU/Linux
Machine Type: i686-redhat-linux-gnu

Bash Version: 3.0
Patch Level: 15
Release Status: release
*
Description:*
read builtin function keeps trailing white space when the default variable REPLY is used. This is specially bad when using the -e option because readline puts and extra space after pressing a the tab key to autocomplete a word.
   The IFS that delimits a word shouldn't be assigned to the variable.
*
Repeat-By:*
   Type the following:
   read
   type something with one trailing space
   echo "|$REPLY|"
   REPLY keeps the trailing white space

   Then try this other variant:
   read VAR
   type something with one trailing space
   echo "|$VAR|"
   VAR doesn't keep the trailing white space.
This last behavior is the correct because "read" should parse everything by words (IFS are the delimiters and are not included).

*Additional comments:*
This behavior cases problems, for example, if you then try to check the existence of a file:
       if [ -e "$REPLY" ]; then
fails because of the trailing white space. The quotes are necessary to check for null.

*Fix:*
   None

Thank you very much.

Reply via email to