Bash read: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=Internal= * bash =Overview=")
 
Line 4: Line 4:


=Overview=
=Overview=
read [-p prompt] name name2 ...
Read a line from the stdin or from the file descriptor specified with -u, and assign the first word to the variable associated with the first name, the second to the variable associated with the second name, and so on, with the leftover words and their intervening separators assigned to the variable associated with the last name. If there are fewer words than variable names, the variables associated with the remaining names are assigned empty values. 
The words are split using the [[Bash_Environment_Variables#IFS_and_read|IFS characters]].
read [-ers]  [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d
      delim] [name ...]
The characters in IFS  are  used  to
              split  the  line into words.  The backslash character (\) may be
              used to remove any special meaning for the next  character  read
              and  for line continuation.  Options, if supplied, have the fol-
              lowing meanings:
              -a aname
                    The words are assigned to sequential indices of the array
                    variable aname, starting at 0.  aname is unset before any
                    new  values  are  assigned.  Other  name  arguments  are
                    ignored.
              -d delim
                    The  first  character  of  delim is used to terminate the
                    input line, rather than newline.
              -e    If the standard input is coming from a terminal, readline
                    (see READLINE above) is used to obtain the line.
              -n nchars
                    read  returns after reading nchars characters rather than
                    waiting for a complete line of input.
              -p prompt
                    Display prompt on standard error, without a trailing new-
                    line, before attempting to read any input.  The prompt is
                    displayed only if input is coming from a terminal.
              -r    Backslash does not act as an escape character.  The back-
                    slash  is considered to be part of the line.  In particu-
                    lar, a backslash-newline pair may not be used as  a  line
                    continuation.
              -s    Silent mode.  If input is coming from a terminal, charac-
                    ters are not echoed.
              -t timeout
                    Cause read to time out and return failure if  a  complete
                    line  of  input is not read within timeout seconds.  This
                    option has no effect if read is not  reading  input  from
                    the terminal or a pipe.
              -u fd  Read input from file descriptor fd.
              If no names are supplied, the line read is assigned to the vari-
              able REPLY.  The return code  is  zero,  unless  end-of-file  is
              encountered,  read  times  out, or an invalid file descriptor is
              supplied as the argument to -u.
=Timeout=

Revision as of 19:09, 6 August 2017

Internal

Overview

read [-p prompt] name name2 ...

Read a line from the stdin or from the file descriptor specified with -u, and assign the first word to the variable associated with the first name, the second to the variable associated with the second name, and so on, with the leftover words and their intervening separators assigned to the variable associated with the last name. If there are fewer words than variable names, the variables associated with the remaining names are assigned empty values.

The words are split using the IFS characters.


read [-ers]  [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d
     delim] [name ...]

The characters in IFS are used to

             split  the  line into words.  The backslash character (\) may be
             used to remove any special meaning for the next  character  read
             and  for line continuation.  Options, if supplied, have the fol-
             lowing meanings:
             -a aname
                    The words are assigned to sequential indices of the array
                    variable aname, starting at 0.  aname is unset before any
                    new  values  are  assigned.   Other  name  arguments  are
                    ignored.
             -d delim
                    The  first  character  of  delim is used to terminate the
                    input line, rather than newline.
             -e     If the standard input is coming from a terminal, readline
                    (see READLINE above) is used to obtain the line.
             -n nchars
                    read  returns after reading nchars characters rather than
                    waiting for a complete line of input.
             -p prompt
                    Display prompt on standard error, without a trailing new-
                    line, before attempting to read any input.  The prompt is
                    displayed only if input is coming from a terminal.
             -r     Backslash does not act as an escape character.  The back-
                    slash  is considered to be part of the line.  In particu-
                    lar, a backslash-newline pair may not be used as  a  line
                    continuation.
             -s     Silent mode.  If input is coming from a terminal, charac-
                    ters are not echoed.
             -t timeout
                    Cause read to time out and return failure if  a  complete
                    line  of  input is not read within timeout seconds.  This
                    option has no effect if read is not  reading  input  from
                    the terminal or a pipe.
             -u fd  Read input from file descriptor fd.
             If no names are supplied, the line read is assigned to the vari-
             able REPLY.  The return code  is  zero,  unless  end-of-file  is
             encountered,  read  times  out, or an invalid file descriptor is
             supplied as the argument to -u.

Timeout