## 35.18. read: Reading from the Keyboard

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.