[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: read built-in will not read inside while loop

From: Chris F.A. Johnson
Subject: Re: read built-in will not read inside while loop
Date: Mon, 10 Oct 2005 20:43:16 -0400 (EDT)

On Mon, 10 Oct 2005, Tony Thedford wrote:

Configuration Information [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: i686-pc-linux-gnu-gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' -DC uname output: Linux tony 2.6.12-gentoo-r10 #14 Thu Sep 29 03:19:53 CDT 2005 i686 AMD Athlon(tm) XP 3000+ AuthenticAMD GNU/Lin
Machine Type: i686-pc-linux-gnu

Bash Version: 3.0
Patch Level: 16
Release Status: release


When a 'read -p "line of text."' built-in is placed inside a while loop which has redirected input to another read built-in, the read command inside the while loop does not execute. I know this sounds vague, but see the example and it will make more sense.

    Unless you tell it otherwise, read gets its input from stdin,
    which is redefined for the entire loop. If you want it from
    somewhere else, redirect the inoput for that read statement, e.g.:

read -p "Looping.. press a key." < /dev/tty



read -p "hello press a key."

while read a b c ; do

echo $a

read -p "Looping.. press a key."  <--- This 'read' will not execute.

    To see what this command has read:


echo $b
echo $c

done < <(ls -al ~/)

exit 0

    Chris F.A. Johnson                     <http://cfaj.freeshell.org>
    Shell Scripting Recipes: A Problem-Solution Approach, 2005, Apress

reply via email to

[Prev in Thread] Current Thread [Next in Thread]