bug-bash
[Top][All Lists]
Advanced

[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

Description:

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

Repeat-By:

#!/bin/bash

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 REPLY=$REPLY

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
    <http://www.torfree.net/~chris/books/cfaj/ssr.html>




reply via email to

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