A.4 Getting Input: The read Command


The read command reads one line from standard input and assigns the next word in the line to each successive variable specified as its arguments; extra words are assigned to its final argument. For example, these commands:

cat file.dat | \ while read x y z  do     echo $x $y $z done

produce output like this:

a b c  d e f  ...

read can be used either for reading sequentially through a file (as in the earlier example with while) or for getting runtime input from the user. Here is an example using read for command input:

echo "fsck all disks? [y] \c"  read ans < /dev/console

A.4.1 The bash select command

bash provides the select command for prompting the user to select an item from a menu, as in this example:

$ cat choose.bash #!/bin/bash    PS3="Choose an operating system: " select os in "aix" "hp-ux" "solaris" "tru64" "linux" "freebsd" do                                Loop until a valid choice is entered.   if [ $os ]; then     echo You chose $os which was choice number $REPLY     break   else     echo -e "\nInvalid choice -- try again.\n"   fi done $ choose.bash 1) aix 2) hp-ux 3) solaris 4) tru64 5) linux 6) freebsd Choose an operating system: 2 You chose hp-ux which was choice number 2

This code fragment also illustrates the bash echo command's -e option, which allows you to include backslash escape sequences such as \n.



Essential System Administration
Essential System Administration, Third Edition
ISBN: 0596003439
EAN: 2147483647
Year: 2002
Pages: 162

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net