The Bourne shell read command reads a line of one or more words from the keyboard (or standard input)[109] and stores the words in one or more shell variables. This is usually what you use to read an answer from the keyboard. For example:
[109]Some early versions of read don't handle < redirection (Section 43.1); they can only read from the terminal.
echo -n "Type the filename: " read filename
Here is how the read command works:
If you give the name of one shell variable, read stores everything from the line into that variable:
read varname
If you name more than one variable, the first word typed goes into the first variable, the second word into the second variable, and so on. All leftover words go into the last variable. For example, with these commands:
echo -n "Enter first and last name: " read fn ln
if a user types John Smith, the word John would be available from $fn and Smith would be in $ln. If the user types Jane de Boes, then Jane would be in $fn and the two words de Boes are in $ln.
Some Bourne shells have a built-in function named line that reads a line from standard input and writes it to standard output. Use it with command substitutions (Section 28.14):
value=`line`
Go to http://examples.oreilly.com/upt3 for more information on: grabchars
The grabchars program lets you read from the keyboard without needing to press RETURN.
-- JP
Copyright © 2003 O'Reilly & Associates. All rights reserved.