home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / BASHDOC.ZIP / bash.doc
Text File  |  1993-02-04  |  128KB  |  3,103 lines

  1.  
  2.  
  3.  
  4. BASH(1)                                                   BASH(1)
  5.  
  6.  
  7. NAME
  8.        bash - GNU Bourne-Again SHell
  9.  
  10. SYNOPSIS
  11.        bash [options] [file]
  12.  
  13. COPYRIGHT
  14.        Copyright  (C) 1989, 1991 by the Free Software Foundation,
  15.        Inc.
  16.  
  17. DESCRIPTION
  18.        Bash is an sh-compatible command language interpreter that
  19.        executes  commands  read from the standard input or from a
  20.        file.  Bash also incorporates  useful  features  from  the
  21.        Korn and C shells (ksh and csh).
  22.  
  23.        Bash  is  ultimately intended to be a faithful implementa-
  24.        tion of the IEEE Posix Shell and Tools specification (IEEE
  25.        Working Group 1003.2).
  26.  
  27. OPTIONS
  28.        In  addition  to  the single-character shell options docu-
  29.        mented in the description of the set builtin command, bash
  30.        interprets the following flags when it is invoked:
  31.  
  32.        -c string If  the  -c  flag  is present, then commands are
  33.                  read from string.
  34.        -i        If the -i flag is present, the shell is interac-
  35.                  tive.
  36.        -s        If  the  -s  flag is present, or if no arguments
  37.                  remain after option  processing,  then  commands
  38.                  are  read  from the standard input.  This option
  39.                  allows the positional parameters to be set  when
  40.                  invoking an interactive shell.
  41.        -         A  single  - signals the end of options and dis-
  42.                  ables further option processing.  Any  arguments
  43.                  after  the  - are treated as filenames and argu-
  44.                  ments.  An argument of -- is  equivalent  to  an
  45.                  argument of -.
  46.  
  47.        Bash  also interprets a number of multi-character options.
  48.        These options must appear on the command line  before  the
  49.        single-character options to be recognized.
  50.  
  51.        -norc     Do  not  load  the  personal initialization file
  52.                  ~/.bashrc if the shell is interactive.  This  is
  53.                  the default if the shell name is sh.
  54.        -noprofile
  55.                  Do    not    read    either    /etc/profile   or
  56.                  ~/.bash_profile.   By  default,  bash   normally
  57.                  reads  these files when it is invoked as a login
  58.                  shell.
  59.        -rcfile file
  60.                  Execute  commands  from  file  instead  of   the
  61.  
  62.  
  63.  
  64. GNU                      1991 November 24                       1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. BASH(1)                                                   BASH(1)
  71.  
  72.  
  73.                  standard personal initialization file ~/.bashrc,
  74.                  if the shell is interactive.
  75.        -version  Show the version number of this instance of bash
  76.                  when starting.
  77.        -quiet    Do  not be verbose when starting up (do not show
  78.                  the shell version or any other information).
  79.        -login    Make bash act as  if  it  had  been  invoked  by
  80.                  login(1).
  81.        -nobraceexpansion
  82.                  Do not perform curly brace expansion a la csh.
  83.        -nolineediting
  84.                  Do not use the GNU readline library to read com-
  85.                  mand lines if interactive.
  86.  
  87. ARGUMENTS
  88.        If arguments remain after option processing,  and  neither
  89.        the  -c  nor  the  -s  option has been supplied, the first
  90.        argument is assumed to be the name of  a  file  containing
  91.        shell commands.  If bash is invoked in this fashion, $0 is
  92.        set to the name of the file, and the positional parameters
  93.        are  set  to the remaining arguments.  Bash reads and exe-
  94.        cutes commands from this file, then exits.
  95.  
  96. DEFINITIONS
  97.        blank  A space or tab.
  98.        word   A sequence of characters  considered  as  a  single
  99.               unit by the shell.  Also known as a token.
  100.        name   A  word  consisting only of alphanumeric characters
  101.               and underscores, and beginning with  an  alphabetic
  102.               character or an underscore.  Also referred to as an
  103.               identifier.
  104.        metacharacter
  105.               A character that, when unquoted,  separates  words.
  106.               One of the following:
  107.               |  & ; ( ) < > <space> <tab>
  108.        control operator
  109.               A  token  that  performs a control function.  It is
  110.               one of the following symbols:
  111.               || & && ; ;; ( ) | <newline>
  112.  
  113. RESERVED WORDS
  114.        Reserved words are words that have a  special  meaning  to
  115.        the shell.  The following words are recognized as reserved
  116.        when unquoted and either the first word of a  simple  com-
  117.        mand (see SHELL GRAMMAR below) or the third word of a case
  118.        or for command:
  119.  
  120.        ! case  do done elif else esac fi for function if in  then
  121.        until while { }
  122.  
  123. SHELL GRAMMAR
  124.    Simple Commands
  125.        A  simple  command  is  a  sequence  of  optional variable
  126.        assignments  followed   by   blank-separated   words   and
  127.  
  128.  
  129.  
  130. GNU                      1991 November 24                       2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. BASH(1)                                                   BASH(1)
  137.  
  138.  
  139.        redirections,  and  terminated by a control operator.  The
  140.        first word specifies the  command  to  be  executed.   The
  141.        remaining  words  are  passed  as arguments to the invoked
  142.        command.
  143.  
  144.        The return value of a simple command is its  exit  status,
  145.        or 128+n if the command is terminated by signal n.
  146.  
  147.    Pipelines
  148.        A pipeline is a sequence of one or more commands separated
  149.        by the character |.  The format for a pipeline is:
  150.  
  151.               [ ! ] command [ | command2 ... ]
  152.  
  153.        The standard output of command is connected to  the  stan-
  154.        dard  input  of  command2.   This  connection is performed
  155.        before any redirections  specified  by  the  command  (see
  156.        REDIRECTION below).
  157.  
  158.        If the reserved word !  precedes a pipeline, the exit sta-
  159.        tus of that pipeline is the logical NOT of the exit status
  160.        of  the  last  command.   Otherwise,  the  status  of  the
  161.        pipeline is the exit status  of  the  last  command.   The
  162.        shell  waits for all commands in the pipeline to terminate
  163.        before returning a value.
  164.  
  165.        Each command in a pipeline is executed as a separate  pro-
  166.        cess (i.e. in a subshell).
  167.  
  168.    Lists
  169.        A list is a sequence of one or more pipelines separated by
  170.        one of the operators ;, &, &&, or ||, and optionally  ter-
  171.        minated by one of ;, &, or <newline>.
  172.  
  173.        Of  these  list  operators, && has highest precedence.  ||
  174.        has the next highest precedence,  followed  by  ;  and  &,
  175.        which have equal precedence.
  176.  
  177.        If  a command is terminated by the control operator &, the
  178.        shell executes the command in the  background  in  a  sub-
  179.        shell.  The shell does not wait for the command to finish.
  180.        Commands separated by a ; are executed  sequentially;  the
  181.        shell waits for each command to terminate in turn.
  182.  
  183.        The  control  operators  && and || denote AND lists and OR
  184.        lists, respectively.  An AND list has the form
  185.  
  186.               command && command2
  187.  
  188.        command2 is executed if, and only if, command  returns  an
  189.        exit status of zero.
  190.  
  191.        An OR list has the form
  192.  
  193.  
  194.  
  195.  
  196. GNU                      1991 November 24                       3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. BASH(1)                                                   BASH(1)
  203.  
  204.  
  205.               command || command2
  206.  
  207.  
  208.        command2 is executed if and only if command returns a non-
  209.        zero exit status.
  210.  
  211.    Compound Commands
  212.        A compound command is one of the following:
  213.  
  214.        (list) list is executed in a subshell.   Variable  assign-
  215.               ments  and builtin commands that affect the shell's
  216.               environment do not remain in effect after the  com-
  217.               mand completes.
  218.  
  219.        { list; }
  220.               list  is simply executed in the current shell envi-
  221.               ronment.  This is known as a group command.
  222.  
  223.        for name [ in word; ] do list ; done
  224.               The list of words following in is expanded,  gener-
  225.               ating a list of items.  The variable name is set to
  226.               each element of this list in turn, and list is exe-
  227.               cuted  each  time.   If the in word is omitted, the
  228.               for command executes list once for each  positional
  229.               parameter  that is set (see PARAMETERS below).  The
  230.               exit status is the exit status of the last command,
  231.               or zero if no commands were executed.
  232.  
  233.        case word in [ pattern [ | pattern ] ... ) list ;; ] ...
  234.               esac
  235.               A case command first expands  word,  and  tries  to
  236.               match  it  against  each  pattern  in turn.  When a
  237.               match is found, the corresponding list is executed.
  238.               After  the  first  match, no subsequent matches are
  239.               attempted.  The exit status is zero if no  patterns
  240.               are  matches.   Otherwise, it is the exit status of
  241.               the last command executed in list.
  242.  
  243.        if list then list [ elif list then list ] ... [ else list
  244.               ] fi
  245.               The  if  list  is  executed.  If its exit status is
  246.               zero, the then list is executed.   Otherwise,  each
  247.               elif list is executed in turn, and if its exit sta-
  248.               tus is zero, the corresponding then  list  is  exe-
  249.               cuted  and  the  command completes.  Otherwise, the
  250.               else list is executed, if present.  The exit status
  251.               is the exit status of the last command executed, or
  252.               zero if no condition tested true.
  253.  
  254.        while list do list done
  255.        until list do list done
  256.               The while command continuously executes the do list
  257.               as long as the last command in list returns an exit
  258.               status of zero.  The until command is identical  to
  259.  
  260.  
  261.  
  262. GNU                      1991 November 24                       4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. BASH(1)                                                   BASH(1)
  269.  
  270.  
  271.               the while command, except that the test is negated;
  272.               the do list is executed as long as the last command
  273.               in  list  returns a non-zero exit status.  The exit
  274.               status of the while and until commands is the  exit
  275.               status  of  the  last  do list command executed, or
  276.               zero if none was executed.
  277.  
  278.        [ function ] name () { list; }
  279.               This defines a function named name.   The  body  of
  280.               the  function is the list of commands between { and
  281.               }.  This list is executed whenever name  is  speci-
  282.               fied  as  the  name  of a simple command.  The exit
  283.               status of a function is the exit status of the last
  284.               command  executed  in  the  body.   (See  FUNCTIONS
  285.               below.)
  286.  
  287. COMMENTS
  288.        In a non-interactive shell, a word beginning with # causes
  289.        that  word and all remaining characters on that line to be
  290.        ignored.
  291.  
  292. QUOTING
  293.        Quoting is used to remove the special meaning  of  certain
  294.        characters  or words to the shell.  Quoting can be used to
  295.        disable special treatment for special characters, to  pre-
  296.        vent  reserved words from being recognized as such, and to
  297.        prevent parameter expansion.
  298.  
  299.        Each of the metacharacters listed above under  DEFINITIONS
  300.        has  special  meaning  to  the shell and must be quoted if
  301.        they are to represent themselves.  There are three quoting
  302.        mechanisms:  the escape character, single quotes, and dou-
  303.        ble quotes.
  304.  
  305.        A non-quoted backslash (\) is the  escape  character.   It
  306.        preserves  the  literal  value  of the next character that
  307.        follows, with the exception of <newline>.  If a \<newline>
  308.        pair  appears,  it is treated as a line continuation (that
  309.        is, it is effectively ignored), if the backslash  is  non-
  310.        quoted.
  311.  
  312.        Enclosing  characters  in single quotes preserves the lit-
  313.        eral value of each character within the quotes.  A  single
  314.        quote  may not occur between single quotes, even when pre-
  315.        ceded by a backslash.
  316.  
  317.        Enclosing characters in double quotes preserves  the  lit-
  318.        eral  value  of all characters within the quotes, with the
  319.        exception of $, `, and \.  The characters $ and  `  retain
  320.        their special meaning within double quotes.  The backslash
  321.        retains its special meaning only when followed by  one  of
  322.        the  following  characters:  $,  `, ", \, or <newline>.  A
  323.        double quote may be quoted within double quotes by preced-
  324.        ing it with a backslash.
  325.  
  326.  
  327.  
  328. GNU                      1991 November 24                       5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. BASH(1)                                                   BASH(1)
  335.  
  336.  
  337.        The  special  parameters * and @ have special meaning when
  338.        in double quotes (see PARAMETERS below).
  339.  
  340. PARAMETERS
  341.        A parameter is an entity that stores values, somewhat like
  342.        a variable in a conventional programming language.  It can
  343.        be a name, a number, or  one  of  the  special  characters
  344.        listed  below  under  Special Parameters.  For the shell's
  345.        purposes, a variable is a parameter denoted by a name.
  346.  
  347.        A parameter is set if it has been assigned a  value.   The
  348.        null  string is a valid value.  Once a variable is set, it
  349.        may be unset only by using the unset builtin command  (see
  350.        SHELL BUILTIN COMMANDS below).
  351.  
  352.        A variable may be assigned to by a statement of the form
  353.  
  354.               name=[value]
  355.  
  356.        If  value  is not given, the variable is assigned the null
  357.        string.  All values undergo tilde expansion, parameter and
  358.        variable   expansion,   command  substitution,  arithmetic
  359.        expansion, and quote removal.  If the variable has its  -i
  360.        attribute  set  (see  declare  below in SHELL BUILTIN COM-
  361.        MANDS) then value is subject to arithmetic expansion  even
  362.        if  the  $[...] syntax does not appear.  Word splitting is
  363.        not performed, with the exception  of  "$@"  as  explained
  364.        below under Special Parameters.  Pathname expansion is not
  365.        performed.
  366.  
  367.    Positional Parameters
  368.        A positional parameter is a parameter denoted  by  one  or
  369.        more  digits,  other  than the single digit 0.  Positional
  370.        parameters are assigned from the shell's arguments when it
  371.        is  invoked,  and  may be reassigned using the set builtin
  372.        command.   The  positional  parameters   are   temporarily
  373.        replaced  when a shell function is executed (see FUNCTIONS
  374.        below).
  375.  
  376.        When a positional parameter consisting of more than a sin-
  377.        gle  digit is expanded, it must be enclosed in braces (see
  378.        EXPANSION below).
  379.  
  380.    Special Parameters
  381.        The shell  treats  several  parameters  specially.   These
  382.        parameters  may  only be referenced; assignment to them is
  383.        not allowed.
  384.        *      Expands to the positional parameters, starting from
  385.               one.   When  the  expansion  occurs  within  double
  386.               quotes, it expands to a single word with the  value
  387.               of  each parameter separated by the first character
  388.               of the IFS special variable.  That  is,  ``$*''  is
  389.               equivalent  to  ``$1c$2c...'', where c is the first
  390.               character of the value of the IFS variable.  If IFS
  391.  
  392.  
  393.  
  394. GNU                      1991 November 24                       6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. BASH(1)                                                   BASH(1)
  401.  
  402.  
  403.               is  null  or unset, the parameters are separated by
  404.               spaces.
  405.        @      Expands to the positional parameters, starting from
  406.               one.   When  the  expansion  occurs  within  double
  407.               quotes, each parameter expands as a separate  word.
  408.               That is, `` $@'' is equivalent to ``$1'' ``$2'' ...
  409.               When there are no positional parameters, ``$@'' and
  410.               $@ expand to nothing (i.e. they are removed).
  411.        #      Expands  to  the number of positional parameters in
  412.               decimal.
  413.        ?      Expands to the status of the most recently executed
  414.               foreground pipeline.
  415.        -      Expands  to  the  current option flags as specified
  416.               upon invocation, by the  set  builtin  command,  or
  417.               those  set  by  the  shell  itself  (such as the -i
  418.               flag).
  419.        $      Expands to the process ID of the shell.   In  a  ()
  420.               subshell,  it expands to the process ID of the cur-
  421.               rent shell, not the subshell.
  422.        !      Expands to the process ID of the most recently exe-
  423.               cuted background (asynchronous) command.
  424.        0      Expands  to  the name of the shell or shell script.
  425.               This is set at shell initialization.   If  bash  is
  426.               invoked  with  a file of commands, $0 is set to the
  427.               name of that file.  Otherwise, it  is  set  to  the
  428.               pathname  used to invoke bash, as given by argument
  429.               zero.
  430.        _      Expands to the last argument to the  previous  com-
  431.               mand,  after expansion.  Also set to the full path-
  432.               name of each command executed  and  placed  in  the
  433.               environment exported to that command.
  434.  
  435.    Shell Variables
  436.        The following variables are set by the shell:
  437.  
  438.        PPID   The process ID of the shell's parent.
  439.        PWD    The current working directory as set by the cd com-
  440.               mand.
  441.        OLDPWD The previous working directory as  set  by  the  cd
  442.               command.
  443.        REPLY  Set  to  the line of input read by the read builtin
  444.               command when no arguments are supplied.
  445.        UID    Expands to the user ID of the current user.
  446.        EUID   Expands to the effective user  ID  of  the  current
  447.               user.
  448.        BASH   Expands  to  the  full pathname used to invoke this
  449.               instance of bash.
  450.        BASH_VERSION
  451.               Expands to the version number of this  instance  of
  452.               bash.
  453.        SHLVL  Incremented by one each time an instance of bash is
  454.               started.
  455.        RANDOM Each time this parameter is  referenced,  a  random
  456.               integer  is  generated.   The  sequence  of  random
  457.  
  458.  
  459.  
  460. GNU                      1991 November 24                       7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. BASH(1)                                                   BASH(1)
  467.  
  468.  
  469.               numbers may be initialized by assigning a value  to
  470.               RANDOM.   If  RANDOM is unset, it loses its special
  471.               properties, even if it is subsequently reset.
  472.        SECONDS
  473.               Each time this parameter is referenced, the  number
  474.               of  seconds since shell invocation is returned.  If
  475.               a value is assigned to SECONDS, the value  returned
  476.               upon subsequent references is the number of seconds
  477.               since the assignment plus the value  assigned.   If
  478.               SECONDS  is unset, it loses its special properties,
  479.               even if it is subsequently reset.
  480.        LINENO Each time this parameter is referenced,  the  shell
  481.               substitutes  a decimal number representing the cur-
  482.               rent  sequential  line  number  (starting  with  1)
  483.               within  a script or function.  When not in a script
  484.               or function, the value substituted is  not  guaran-
  485.               teed  to  be  meaningful.   When in a function, the
  486.               value is not the number of the source line that the
  487.               command  appears on (that information has been lost
  488.               by the time the function is executed),  but  is  an
  489.               approximation of the number of simple commands exe-
  490.               cuted in the current function.  If LINENO is unset,
  491.               it loses its special properties, even if it is sub-
  492.               sequently reset.
  493.        OPTARG The value of the last option argument processed  by
  494.               the getopts builtin command (see SHELL BUILTIN COM-
  495.               MANDS below).
  496.        OPTIND The index of  the  last  option  processed  by  the
  497.               getopts builtin command (see SHELL BUILTIN COMMANDS
  498.               below).
  499.  
  500.        The following variables are used by the  shell.   In  some
  501.        cases,  bash  assigns a default value to a variable; these
  502.        cases are noted below.
  503.  
  504.        IFS    The Internal Field Separator that is used for  word
  505.               splitting  after  expansion and to split lines into
  506.               words with the read builtin command.   The  default
  507.               value is ``<space><tab><newline>''.
  508.        PATH   The  search  path  for  commands.   It  is a colon-
  509.               separated list of directories in  which  the  shell
  510.               looks  for  commands (see COMMAND EXECUTION below).
  511.               The default path is system-dependent, and is set by
  512.               the  administrator  who  installs  bash.   A common
  513.               value                                            is
  514.               ``.:/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc''.
  515.               Note that in some circumstances, however, a leading
  516.               `.' in PATH can be a security hazard.
  517.        HOME   The home directory of the current user; the default
  518.               argument for the cd builtin command.
  519.        CDPATH The search path for the  cd  command.   This  is  a
  520.               colon-separated  list  of  directories in which the
  521.               shell looks for destination  directories  specified
  522.               by the cd command.  A sample value is ``.:~:/usr''.
  523.  
  524.  
  525.  
  526. GNU                      1991 November 24                       8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. BASH(1)                                                   BASH(1)
  533.  
  534.  
  535.        ENV    If this parameter is set when bash is  executing  a
  536.               shell  script,  its value is interpreted as a file-
  537.               name containing commands to initialize  the  shell,
  538.               as  in  .bashrc.   The value of ENV is subjected to
  539.               parameter  expansion,  command  substitution,   and
  540.               arithmetic  expansion before being interpreted as a
  541.               pathname.  PATH is  not  used  to  search  for  the
  542.               resultant pathname.
  543.        MAIL   If  this  parameter  is  set  to a filename and the
  544.               MAILPATH variable is not set, bash informs the user
  545.               of the arrival of mail in the specified file.
  546.        MAILCHECK
  547.               Specifies  how  often  (in seconds) bash checks for
  548.               mail.  The default is 60 seconds.  When it is  time
  549.               to check for mail, the shell does so before prompt-
  550.               ing.  If this variable is unset, the shell disables
  551.               mail checking.
  552.        MAILPATH
  553.               A  colon-separated  list of pathnames to be checked
  554.               for mail.  The message to be printed may be  speci-
  555.               fied  by  separating  the pathname from the message
  556.               with a `?'.  $_ stands for the name of the  current
  557.               mailfile.  Example:
  558.               MAILPATH='/usr/spool/mail/bfox?"You            have
  559.               mail":~/shell-mail?"$_ has mail!"'
  560.               Bash supplies a default value  for  this  variable,
  561.               but  the  location  of  the user mail files that it
  562.               uses      is      system      dependent       (e.g.
  563.               /usr/spool/mail/$USER).
  564.        MAIL_WARNING
  565.               If  set,  and a file that bash is checking for mail
  566.               has been  accessed  since  the  last  time  it  was
  567.               checked,  the  message  ``The mail in` mailfile has
  568.               been read'' is printed.
  569.        PS1    The  value  of  this  parameter  is  expanded  (see
  570.               PROMPTING  below)  and  used  as the primary prompt
  571.               string.  The default value is ``bash\$ ''.
  572.        PS2    The value of this parameter is  expanded  like  PS1
  573.               and  used  as  the  secondary  prompt  string.  The
  574.               default is ``> ''.
  575.        PS4    The value of this parameter is  expanded  like  PS1
  576.               and  the  value is printed before each command bash
  577.               displays during  an  execution  trace.   The  first
  578.               character  of  PS4 is replicated multiple times, as
  579.               necessary, to indicate multiple levels of  indirec-
  580.               tion.  The default is ``+ ''.
  581.        NO_PROMPT_VARS
  582.               If  set, the decoded prompt string does not undergo
  583.               further expansion (see PROMPTING below).
  584.        HISTSIZE
  585.               The number of commands to remember in  the  command
  586.               history (see HISTORY below).
  587.        HISTFILE
  588.               The  name  of  the file in which command history is
  589.  
  590.  
  591.  
  592. GNU                      1991 November 24                       9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. BASH(1)                                                   BASH(1)
  599.  
  600.  
  601.               saved.  (See HISTORY below.)
  602.        HISTFILESIZE
  603.               The maximum number of lines contained in  the  his-
  604.               tory file.  When this variable is assigned a value,
  605.               the history file is  truncated,  if  necessary,  to
  606.               contain no more than that number of lines.
  607.        OPTERR If set to the value 1, bash displays error messages
  608.               generated by the getopts builtin command (see SHELL
  609.               BUILTIN  COMMANDS below).  OPTERR is initialized to
  610.               1 each time the shell is invoked or a shell  script
  611.               is executed.
  612.        PROMPT_COMMAND
  613.               If set, the value is executed as a command prior to
  614.               issuing each primary prompt.
  615.        IGNOREEOF
  616.        ignoreeof
  617.               Controls the action of the shell on receipt  of  an
  618.               EOF character as the sole input.  If set, the value
  619.               is the number of consecutive EOF  characters  typed
  620.               before bash exits.  If the variable exists but does
  621.               not have a numeric value,  or  has  no  value,  the
  622.               default  value  is  10.   If it does not exist, EOF
  623.               signifies the end of input to the shell.   This  is
  624.               only in effect for interactive shells.
  625.        HOSTTYPE
  626.               Automatically   set   to  a  string  that  uniquely
  627.               describes the type of machine on which bash is exe-
  628.               cuting.  The default is system-dependent.
  629.        TMOUT  If  set  to a value greater than zero, the value is
  630.               interpreted as the number of seconds  to  wait  for
  631.               input  after issuing the primary prompt.  Bash ter-
  632.               minates after waiting for that number of seconds if
  633.               input does not arrive.
  634.        FCEDIT The default editor for the fc builtin command.
  635.        FIGNORE
  636.               A  colon-separated  list of suffixes to ignore when
  637.               performing  filename   completion   (see   READLINE
  638.               below).  A filename whose suffix matches one of the
  639.               entries in FIGNORE is excluded  from  the  list  of
  640.               matched filenames.  A sample value is ``.o:~''.
  641.        notify If  set,  bash  reports  terminated background jobs
  642.               immediately,  rather  than  waiting  until   before
  643.               printing the next primary prompt.
  644.        history_control
  645.               If  set  to  a value of ignorespace, it means don't
  646.               enter lines which begin with a <space> on the  his-
  647.               tory  list.   If  set  to a value of ignoredups, it
  648.               means  don't  enter  lines  which  match  the  last
  649.               entered  line.   If  unset,  or if set to any other
  650.               value than those  above,  all  lines  read  by  the
  651.               parser are saved on the history list.
  652.        command_oriented_history
  653.               If set, bash attempts to save all lines of a multi-
  654.               ple-line command in the same history  entry.   This
  655.  
  656.  
  657.  
  658. GNU                      1991 November 24                      10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. BASH(1)                                                   BASH(1)
  665.  
  666.  
  667.               allows easy re-editing of multi-line commands.
  668.        glob_dot_filenames
  669.               If  set,  bash  includes filenames beginning with a
  670.               `.' in the results of pathname expansion.
  671.        allow_null_glob_expansion
  672.               If set, bash allows pathname patterns  which  match
  673.               no  files  (see Pathname Expansion below) to expand
  674.               to a null string, rather than themselves.
  675.        histchars
  676.               The two characters which control history  expansion
  677.               and  tokenization.  The first character is the his-
  678.               tory expansion character, that  is,  the  character
  679.               which  signals  the  start  of a history expansion,
  680.               normally `!'.  The second character is the  charac-
  681.               ter  which signifies that the remainder of the line
  682.               is a comment, when found as the first character  of
  683.               a word.
  684.        nolinks
  685.               If  set,  the  shell does not follow symbolic links
  686.               when executing commands  that  change  the  current
  687.               working  directory.  It uses the physical directory
  688.               structure instead.  By default,  bash  follows  the
  689.               logical  chain  of directories when performing com-
  690.               mands such as cd.
  691.        hostname_completion_file
  692.               Contains the name of a file in the same  format  as
  693.               /etc/hosts that should be read when the shell needs
  694.               to complete a hostname.  You can  change  the  file
  695.               interactively; the next time you want to complete a
  696.               hostname bash adds the contents of the new file  to
  697.               the already existing database.
  698.        noclobber
  699.               If  set,  bash  does not overwrite an existing file
  700.               with the >, >&, and <> redirection operators.  This
  701.               variable  may  be  overridden  when creating output
  702.               files by using the redirection operator >|  instead
  703.               of  >  (see  also  the -C option to the set builtin
  704.               command).
  705.        auto_resume
  706.               This variable controls how the shell interacts with
  707.               the user and job control.  If this variable is set,
  708.               single word simple  commands  without  redirections
  709.               are  treated  as  candidates  for  resumption of an
  710.               existing  stopped  job.   There  is  no   ambiguity
  711.               allowed;  if  there  is more than one job beginning
  712.               with  the  string  typed,  the  job  most  recently
  713.               accessed is selected.
  714.        no_exit_on_failed_exec
  715.               If this variable exists, the shell does not exit if
  716.               it cannot execute the file specified  in  the  exec
  717.               command.
  718.        cdable_vars
  719.               If  this is set, an argument to the cd builtin com-
  720.               mand that is not a directory is assumed to  be  the
  721.  
  722.  
  723.  
  724. GNU                      1991 November 24                      11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. BASH(1)                                                   BASH(1)
  731.  
  732.  
  733.               name  of a variable whose value is the directory to
  734.               change to.
  735.        pushd_silent
  736.               If set, the pushd and popd builtin commands do  not
  737.               print  the current directory stack after successful
  738.               execution.
  739.  
  740. EXPANSION
  741.        Expansion is performed on the command line  after  it  has
  742.        been split into words.  There are seven kinds of expansion
  743.        performed: brace expansion, tilde expansion, parameter and
  744.        variable   expansion,   command  substitution,  arithmetic
  745.        expansion, word splitting, and pathname expansion.
  746.  
  747.        The order of expansions is: brace expansion, tilde  expan-
  748.        sion, parameter, variable, command, and arithmetic substi-
  749.        tution (done in a left-to-right fashion), word  splitting,
  750.        and pathname expansion.
  751.  
  752.        Only  brace expansion, word splitting, and pathname expan-
  753.        sion can change the number  of  words  of  the  expansion;
  754.        other  expansions  expand  a single word to a single word.
  755.        The single exception to this is the expansion of ``$@'' as
  756.        explained above (see PARAMETERS).
  757.  
  758.    Brace Expansion
  759.        Brace  expansion is a mechanism by which arbitrary strings
  760.        may be generated.  This mechanism is similar  to  pathname
  761.        expansion,  but  the  filenames  generated need not exist.
  762.        Patterns to be brace expanded take the form of an optional
  763.        preamble,  followed by a series of comma-separated strings
  764.        between a pair of braces, followed by an optional  postam-
  765.        ble.   The  preamble is prepended to each string contained
  766.        within the braces, and the postamble is then  appended  to
  767.        each resulting string, expanding left to right.
  768.  
  769.        Brace  expansions  may  be  nested.   The  results of each
  770.        expanded string are not sorted; left  to  right  order  is
  771.        preserved.   For  example, a{d,c,b}e expands into `ade ace
  772.        abe'.
  773.  
  774.        Brace expansion is performed before any other  expansions,
  775.        and  any  characters  special to other expansions are pre-
  776.        served in the result.  It is strictly textual.  Bash  does
  777.        not  apply  any syntactic interpretation to the context of
  778.        the expansion or the text between the braces.
  779.  
  780.        This construct is typically used  as  shorthand  when  the
  781.        common  prefix  of  the  strings to be generated is longer
  782.        than in the above example:
  783.  
  784.               mkdir /usr/local/src/bash/{old,new,dist,bugs}
  785.        or
  786.               chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
  787.  
  788.  
  789.  
  790. GNU                      1991 November 24                      12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. BASH(1)                                                   BASH(1)
  797.  
  798.  
  799.        Brace  expansion  introduces a slight incompatibility with
  800.        traditional versions of sh, the Bourne shell.  sh does not
  801.        treat opening or closing braces specially when they appear
  802.        as part of a word, and preserves them in the output.  Bash
  803.        removes braces from words as a consequence of brace expan-
  804.        sion.  For example, a word  entered  to  sh  as  file{1,2}
  805.        appears  identically in the output.  The same word is out-
  806.        put as file1 file2 after expansion  by  bash.   If  strict
  807.        compatibility  with  sh  is  desired,  start bash with the
  808.        -nobraceexpansion flag  (see  OPTIONS  above)  or  disable
  809.        brace  expansion with the +o braceexpand option to the set
  810.        command (see SHELL BUILTIN COMMANDS below).
  811.  
  812.    Tilde Expansion
  813.        If a word begins with a tilde character (`~'), all of  the
  814.        characters  preceding  the first slash (or all characters,
  815.        if there is no slash) are  treated  as  a  possible  login
  816.        name.  If this login name is the null string, the tilde is
  817.        replaced with the value of the parameter HOME.  If HOME is
  818.        unset,  the home directory of the user executing the shell
  819.        is substituted instead.
  820.  
  821.        If a `+' follows the tilde, the value of  PWD  is  substi-
  822.        tuted.  If a `-' follows, the value of OLDPWD is used.
  823.  
  824.        Each variable assignment is checked for unquoted instances
  825.        of tildes following a : or =.  In these cases, tilde  sub-
  826.        stitution  is  also  performed.  Consequently, one may use
  827.        pathnames with tildes in PATH, MAILPATH, and  CDPATH,  and
  828.        the shell will export the expanded variables.
  829.  
  830.    Parameter Expansion
  831.        The  `$' character introduces parameter expansion, command
  832.        substitution, or arithmetic expansion.  The parameter name
  833.        or  symbol to be expanded may be enclosed in braces, which
  834.        are optional but serve  to  protect  the  variable  to  be
  835.        expanded  from  characters  immediately following it which
  836.        could be interpreted as part of the name.
  837.  
  838.        ${parameter}
  839.               The value of parameter is substituted.  The  braces
  840.               are required when parameter is a positional parame-
  841.               ter with more than one digit, or when parameter  is
  842.               followed  by  a character which is not to be inter-
  843.               preted as part of its name.
  844.  
  845.        In each of the cases  below,  word  is  subject  to  tilde
  846.        expansion,  parameter expansion, command substitution, and
  847.        arithmetic expansion.  Bash tests for a parameter that  is
  848.        unset  or  null; omitting the colon results in a test only
  849.        for a parameter that is unset.
  850.  
  851.        ${parameter:-word}
  852.               Use Default Values.  If parameter is unset or null,
  853.  
  854.  
  855.  
  856. GNU                      1991 November 24                      13
  857.  
  858.  
  859.  
  860.  
  861.  
  862. BASH(1)                                                   BASH(1)
  863.  
  864.  
  865.               the  expansion  of word is substituted.  Otherwise,
  866.               the value of parameter is substituted.
  867.        ${parameter:=word}
  868.               Assign Default Values.  If parameter  is  unset  or
  869.               null,  the expansion of word is assigned to parame-
  870.               ter.  The value of parameter is  then  substituted.
  871.               Positional  parameters  and  special parameters may
  872.               not be assigned to in this way.
  873.        ${parameter:?word}
  874.               Display Error if Null or Unset.   If  parameter  is
  875.               null  or unset, the expansion of word (or a message
  876.               to that effect if word is not present)  is  written
  877.               to  the  standard error and the shell, if it is not
  878.               interactive, exits.  Otherwise, the value of param-
  879.               eter is substituted.
  880.        ${parameter:+word}
  881.               Use  Alternate  Value.   If  parameter  is  null or
  882.               unset, nothing is substituted, otherwise the expan-
  883.               sion of word is substituted.
  884.        ${#parameter}
  885.               The  length in characters of the value of parameter
  886.               is substituted.  If parameter is * or @, the length
  887.               substituted is the length of * expanded within dou-
  888.               ble quotes.
  889.        ${parameter#word}
  890.        ${parameter##word}
  891.               The word is expanded to produce a pattern  just  as
  892.               in  pathname expansion.  If the pattern matches the
  893.               beginning of  the  value  of  parameter,  then  the
  894.               expansion is the value of parameter with the short-
  895.               est matching pattern deleted (the  ``#''  case)  or
  896.               the  longest  matching  pattern deleted (the ``##''
  897.               case).
  898.  
  899.        ${parameter%word}
  900.        ${parameter%%word}
  901.               The word is expanded to produce a pattern  just  as
  902.               in  pathname  expansion.   If the pattern matches a
  903.               trailing portion of the value  of  parameter,  then
  904.               the  expansion  is  the value of parameter with the
  905.               shortest matching pattern deleted (the ``%''  case)
  906.               or the longest matching pattern deleted (the ``%%''
  907.               case).
  908.  
  909.    Command Substitution
  910.        Command substitution allows the output  of  a  command  to
  911.        replace the command name.  There are two forms:
  912.  
  913.  
  914.               $(command)
  915.        or
  916.               `command`
  917.  
  918.        Bash  performs  the  expansion  by  executing  command and
  919.  
  920.  
  921.  
  922. GNU                      1991 November 24                      14
  923.  
  924.  
  925.  
  926.  
  927.  
  928. BASH(1)                                                   BASH(1)
  929.  
  930.  
  931.        replacing the command substitution with the standard  out-
  932.        put of the command, with any trailing newlines deleted.
  933.  
  934.        When the old-style backquote form of substitution is used,
  935.        backslash retains its literal meaning except when followed
  936.        by  $, `, or \.  When using the $(command) form, all char-
  937.        acters between the parentheses make up the  command;  none
  938.        are treated specially.
  939.  
  940.        Command  substitutions  may be nested.  To nest when using
  941.        the old form,  escape  the  inner  backquotes  with  back-
  942.        slashes.
  943.  
  944.        If  the  substitution  appears  within double quotes, word
  945.        splitting and pathname expansion are not performed on  the
  946.        results.
  947.  
  948.    Arithmetic Expansion
  949.        Arithmetic  expansion  allows  the evaluation of an arith-
  950.        metic expression and the substitution of the result.   The
  951.        format for arithmetic expansion is:
  952.  
  953.               $[expression]
  954.  
  955.        The  expression  is  treated  as  if it were within double
  956.        quotes, but a  double  quote  inside  the  braces  is  not
  957.        treated  specially.   All tokens in the expression undergo
  958.        parameter  expansion,  command  substitution,  and   quote
  959.        removal.  Arithmetic substitutions may be nested.
  960.  
  961.        The  evaluation is performed according to the rules listed
  962.        below  under  ARITHMETIC  EVALUATION.   If  expression  is
  963.        invalid,  bash  prints a message indicating failure and no
  964.        substitution occurs.
  965.  
  966.    Word Splitting
  967.        The shell scans the results of parameter  expansion,  com-
  968.        mand  substitution,  and arithmetic expansion that did not
  969.        occur within double quotes for word splitting.
  970.  
  971.        The shell treats each character of IFS as a delimiter, and
  972.        splits  the  results of the other expansions into words on
  973.        these  characters.   If  the  value  of  IFS  is   exactly
  974.        <space><tab><newline>,  the  default, then any sequence of
  975.        IFS characters serves to  delimit  words;  otherwise  each
  976.        occurrence  of an IFS character is treated as a delimiter.
  977.        If the value of IFS is null,  no  word  splitting  occurs.
  978.        IFS cannot be unset.
  979.  
  980.        Explicit null arguments ("" or '') are retained.  Implicit
  981.        null arguments, resulting from the expansion of parameters
  982.        that have no values, are removed.
  983.  
  984.        Note   that  if  no  expansion  occurs,  no  splitting  is
  985.  
  986.  
  987.  
  988. GNU                      1991 November 24                      15
  989.  
  990.  
  991.  
  992.  
  993.  
  994. BASH(1)                                                   BASH(1)
  995.  
  996.  
  997.        performed.
  998.  
  999.    Pathname Expansion
  1000.        After word splitting, bash scans each word for the charac-
  1001.        ters *, ?, and [, unless the -f flag has been set.  If one
  1002.        of these characters appears, then the word is regarded  as
  1003.        a pattern, and replaced with an alphabetically sorted list
  1004.        of pathnames matching the pattern.  If no  matching  path-
  1005.        names     are    found,    and    the    shell    variable
  1006.        allow_null_glob_expansion  is  unset,  the  word  is  left
  1007.        unchanged.  If the variable is set, the word is removed if
  1008.        no matches are found.  When a pattern is used for pathname
  1009.        generation, the character ``.''  at the start of a name or
  1010.        immediately following a slash must be matched  explicitly,
  1011.        unless  the shell variable glob_dot_filenames is set.  The
  1012.        slash character must always  be  matched  explicitly.   In
  1013.        other  cases,  the  ``.''   character  is not treated spe-
  1014.        cially.
  1015.  
  1016.        The special pattern characters have  the  following  mean-
  1017.        ings:
  1018.  
  1019.        *      Matches any string, including the null string.
  1020.        ?      Matches any single character.
  1021.        [...]  Matches any one of the enclosed characters.  A pair
  1022.               of characters separated by a minus sign  denotes  a
  1023.               range;  any  character  lexically between those two
  1024.               characters, inclusive, is matched.   If  the  first
  1025.               character  following  the [ is a !  or a ^ then any
  1026.               character not enclosed is matched.  A - or ] may be
  1027.               matched  by including it as the first or last char-
  1028.               acter in the set.
  1029.  
  1030.    Quote Removal
  1031.        After the preceding expansions, all  unquoted  occurrences
  1032.        of the characters \, `, and " are removed.
  1033.  
  1034. REDIRECTION
  1035.        Before  a command is executed, its input and output may be
  1036.        redirected using a special  notation  interpreted  by  the
  1037.        shell.   Redirection  may  also  be used to open and close
  1038.        files for the current shell  execution  environment.   The
  1039.        following  redirection  operators may appear anywhere in a
  1040.        simple command or may precede or follow a command.   Redi-
  1041.        rections are processed in the order they appear, from left
  1042.        to right.
  1043.  
  1044.        In the following descriptions, if the file descriptor num-
  1045.        ber is omitted, and the first character of the redirection
  1046.        operator is <, the  redirection  refers  to  the  standard
  1047.        input  (file descriptor 0).  If the first character of the
  1048.        redirection operator is >, the redirection refers  to  the
  1049.        standard output (file descriptor 1).
  1050.  
  1051.  
  1052.  
  1053.  
  1054. GNU                      1991 November 24                      16
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. BASH(1)                                                   BASH(1)
  1061.  
  1062.  
  1063.        The word that follows the redirection operator in the fol-
  1064.        lowing descriptions is subjected to brace expansion, tilde
  1065.        expansion,   parameter  expansion,  command  substitution,
  1066.        arithmetic expansion, quote removal, and  pathname  expan-
  1067.        sion.   If  it expands to more than one word, bash reports
  1068.        an error.
  1069.  
  1070.    Redirecting Input
  1071.        Redirection of input causes the file  whose  name  results
  1072.        from  the  expansion  of  word to be opened for reading on
  1073.        file descriptor n, or the standard input (file  descriptor
  1074.        0) if n is not specified.
  1075.  
  1076.        The general format for redirecting input is:
  1077.  
  1078.               [n]<word
  1079.  
  1080.    Redirecting Output
  1081.        Redirection  of  output causes the file whose name results
  1082.        from the expansion of word to be  opened  for  writing  on
  1083.        file descriptor n, or the standard output (file descriptor
  1084.        1) if n is not specified.  If the file does not  exist  it
  1085.        is created; if it does exist it is truncated to zero size.
  1086.  
  1087.        The general format for redirecting output is:
  1088.  
  1089.               [n]>word
  1090.  
  1091.        If the redirection  operator  is  >|,  then  the  variable
  1092.        noclobber  is  not  consulted,  and  the  file  is created
  1093.        regardless of the value of noclobber (see Shell  Variables
  1094.        above).
  1095.  
  1096.    Appending Redirected Output
  1097.        Redirection  of  output  in  this  fashion causes the file
  1098.        whose name results from the expansion of word to be opened
  1099.        for appending on file descriptor n, or the standard output
  1100.        (file descriptor 1) if n is not specified.   If  the  file
  1101.        does not exist it is created.
  1102.  
  1103.        The general format for appending output is:
  1104.  
  1105.               [n]>>word
  1106.  
  1107.  
  1108.    Redirecting Standard Output and Standard Error
  1109.        Bash  allows  both the standard output (file descriptor 1)
  1110.        and the standard error output (file descriptor  2)  to  be
  1111.        redirected to the file whose name is the expansion of word
  1112.        with this construct.
  1113.  
  1114.        There are two formats for redirecting standard output  and
  1115.        standard error:
  1116.  
  1117.  
  1118.  
  1119.  
  1120. GNU                      1991 November 24                      17
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. BASH(1)                                                   BASH(1)
  1127.  
  1128.  
  1129.               &>word
  1130.        and
  1131.               >&word
  1132.  
  1133.        Of  the two forms, the first is preferred.  This is seman-
  1134.        tically equivalent to
  1135.  
  1136.               >word 2>&1
  1137.  
  1138.    Here Documents
  1139.        This type of redirection instructs the shell to read input
  1140.        from  the current source until a line containing only word
  1141.        (with no trailing blanks) is seen.  All of the lines  read
  1142.        up to that point are then used as the standard input for a
  1143.        command.
  1144.  
  1145.        The format of here-documents is as follows:
  1146.  
  1147.               <<[-]word
  1148.                       here-document
  1149.               delimiter
  1150.  
  1151.        No parameter  expansion,  command  substitution,  pathname
  1152.        expansion,  or  arithmetic expansion is performed on word.
  1153.        If any characters in word are quoted, the delimiter is the
  1154.        result  of  quote  removal  on  word, and the lines in the
  1155.        here-document are not expanded.  Otherwise, all  lines  of
  1156.        the  here-document  are  subjected to parameter expansion,
  1157.        command substitution, and arithmetic  expansion.   In  the
  1158.        latter case, the pair \<newline> is ignored, and \ must be
  1159.        used to quote the characters \, $, and `.
  1160.  
  1161.        If the redirection operator is <<-, then all  leading  tab
  1162.        characters are stripped from input lines and the line con-
  1163.        taining  delimiter.   This  allows  here-documents  within
  1164.        shell scripts to be indented in a natural fashion.
  1165.  
  1166.    Duplicating File Descriptors
  1167.        The redirection operator
  1168.  
  1169.               [n]<&word
  1170.  
  1171.        is  used  to  duplicate  input  file descriptors.  If word
  1172.        expands to one or more digits, the file descriptor denoted
  1173.        by  n  is  made  to be a copy of that file descriptor.  If
  1174.        word evaluates to -, file descriptor n is closed.  If n is
  1175.        not  specified,  the standard input (file descriptor 0) is
  1176.        used.
  1177.  
  1178.        The operator
  1179.  
  1180.               [n]>&word
  1181.  
  1182.        is used similarly to duplicate  output  file  descriptors.
  1183.  
  1184.  
  1185.  
  1186. GNU                      1991 November 24                      18
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. BASH(1)                                                   BASH(1)
  1193.  
  1194.  
  1195.        If  n is not specified, the standard output (file descrip-
  1196.        tor 1) is used.
  1197.  
  1198.    Opening File Descriptors for Reading and Writing
  1199.        The redirection operator
  1200.  
  1201.               [n]<>word
  1202.  
  1203.        causes the file whose name is the expansion of word to  be
  1204.        opened  for both reading and writing on file descriptor n,
  1205.        or as the standard input and standard output if n  is  not
  1206.        specified.
  1207.  
  1208.        Note  that  the order of redirections is significant.  For
  1209.        example, the command
  1210.  
  1211.               ls > dirlist 2>&1
  1212.  
  1213.        directs both standard output and  standard  error  to  the
  1214.        file dirlist, while the command
  1215.  
  1216.               ls 2>&1 > dirlist
  1217.  
  1218.        directs  only the standard output to file dirlist, because
  1219.        the standard  error  was  duplicated  as  standard  output
  1220.        before the standard output was redirected to dirlist.
  1221.  
  1222. FUNCTIONS
  1223.        A  shell  function, defined as described above under SHELL
  1224.        GRAMMAR, stores a series of commands for later  execution.
  1225.        However, functions are executed in the context of the cur-
  1226.        rent shell; no new process is created  to  interpret  them
  1227.        (contrast  this  with  the  execution  of a shell script).
  1228.        When a function is executed, the arguments to the function
  1229.        become  the  positional  parameters  during its execution.
  1230.        The special parameter # is updated to reflect the  change.
  1231.        Positional parameter 0 is unchanged.
  1232.  
  1233.        Variables  local  to the function may be declared with the
  1234.        local builtin command.  Ordinarily,  variables  and  their
  1235.        values are shared between the function and its caller.
  1236.  
  1237.        If  the  builtin command return is executed in a function,
  1238.        the function completes and execution resumes with the next
  1239.        command  after  the  function  call.  When a function com-
  1240.        pletes, the values of the positional  parameters  and  the
  1241.        special  parameter  #  are restored to the values they had
  1242.        prior to function execution.
  1243.  
  1244.        Function names may be listed with the  -f  option  to  the
  1245.        declare  or  typeset  builtin  commands.  Functions may be
  1246.        exported so that subshells automatically have them defined
  1247.        with the -f option to the export builtin.
  1248.  
  1249.  
  1250.  
  1251.  
  1252. GNU                      1991 November 24                      19
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. BASH(1)                                                   BASH(1)
  1259.  
  1260.  
  1261.        Functions  may  be  recursive.  No limit is imposed on the
  1262.        number of recursive calls.
  1263.  
  1264. ALIASES
  1265.        The shell maintains a list of aliases that may be set  and
  1266.        unset  with  the  alias and unalias builtin commands.  The
  1267.        first word of each command is checked to see if it has  an
  1268.        alias.   If  so,  that word is replaced by the text of the
  1269.        alias.  The alias name and the replacement text  may  con-
  1270.        tain  any  valid shell input, including the metacharacters
  1271.        listed above.  The first word of the replacement  text  is
  1272.        tested  for  aliases,  but  a word that is identical to an
  1273.        alias being expanded is not expanded a second time.   This
  1274.        means  that  one  may alias ls to ls -F, for instance, and
  1275.        bash does not try to recursively  expand  the  replacement
  1276.        text.   If  the  last  character  of  the alias value is a
  1277.        blank, then the next command word following the  alias  is
  1278.        also checked for alias expansion.
  1279.  
  1280.        Aliases are created and listed with the alias command, and
  1281.        removed with the unalias command.
  1282.  
  1283.        There is no mechanism for using arguments in the  replace-
  1284.        ment  text,  a  la  csh.  If arguments are needed, a shell
  1285.        function should be used.
  1286.  
  1287.        The rules concerning the definition and use of aliases are
  1288.        somewhat  confusing.   Bash always reads at least one com-
  1289.        plete line of input before executing any of  the  commands
  1290.        on  that  line.   Aliases  are  expanded when a command is
  1291.        read, not when it is executed.  Therefore, an alias  defi-
  1292.        nition  appearing on the same line as another command does
  1293.        not take effect until the next  line  of  input  is  read.
  1294.        This  means  that the commands following the alias defini-
  1295.        tion on that line are not affected by the new alias.  This
  1296.        behavior  is  also  an  issue when functions are executed.
  1297.        Aliases are expanded when the function definition is read,
  1298.        not when the function is executed, because a function def-
  1299.        inition is itself a compound command.  As  a  consequence,
  1300.        aliases  defined  in  a  function  are not available until
  1301.        after that function is executed.  To be safe,  always  put
  1302.        alias definitions on a separate line, and do not use alias
  1303.        in compound commands.
  1304.  
  1305.        Aliases are not expanded when the shell  is  not  interac-
  1306.        tive.
  1307.  
  1308.        Note that for almost every purpose, aliases are superseded
  1309.        by shell functions.
  1310.  
  1311. JOB CONTROL
  1312.        Job control refers to  the  ability  to  selectively  stop
  1313.        (suspend) the execution of processes and continue (resume)
  1314.        their execution  at  a  later  point.   A  user  typically
  1315.  
  1316.  
  1317.  
  1318. GNU                      1991 November 24                      20
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. BASH(1)                                                   BASH(1)
  1325.  
  1326.  
  1327.        employs  this  facility  via an interactive interface sup-
  1328.        plied jointly by the system's terminal driver and bash.
  1329.  
  1330.        The shell associates a job with each pipeline.  It keeps a
  1331.        table  of  currently  executing  jobs, which may be listed
  1332.        with the jobs command.   When  bash  starts  a  job  asyn-
  1333.        chronously  (in  the  background),  it  prints a line that
  1334.        looks like:
  1335.  
  1336.               [1] 25647
  1337.  
  1338.        indicating that this job is job number 1 and that the pro-
  1339.        cess  ID  of the single process in the job is 25647.  Bash
  1340.        uses the job abstraction as the basis for job control.
  1341.  
  1342.        To facilitate the implementation of the user interface  to
  1343.        job  control, the system maintains the notion of a current
  1344.        terminal process group ID.  Members of this process  group
  1345.        (processes  whose process group ID is equal to the current
  1346.        terminal process group ID) receive keyboard-generated sig-
  1347.        nals  such  as  SIGINT.  These processes are said to be in
  1348.        the foreground.  Background processes are those whose pro-
  1349.        cess  group ID differs from the terminal's; such processes
  1350.        are immune to keyboard-generated signals.  Only foreground
  1351.        processes  are allowed to read from or write to the termi-
  1352.        nal.  Background processes  which  attempt  to  read  from
  1353.        (write  to) the terminal are sent a SIGTTIN (SIGTTOU) sig-
  1354.        nal by the terminal driver, which, unless  caught,  causes
  1355.        the process to stop.
  1356.  
  1357.        If  the operating system on which bash is running supports
  1358.        job control, bash allows you to use it.  Typing  the  sus-
  1359.        pend  character  (typically ^Z, Control-Z) while a process
  1360.        is running causes that process to be stopped  and  returns
  1361.        you  to bash.  Typing the delayed suspend character (typi-
  1362.        cally ^Y, Control-Y) causes the process to be stopped when
  1363.        it  attempts  to read input from the terminal, and control
  1364.        to be returned to bash.  You may then manipulate the state
  1365.        of  this  job,  using the bg command to continue it in the
  1366.        background, the fg command to continue  it  in  the  fore-
  1367.        ground, or the kill command to kill it.  A ^Z takes effect
  1368.        immediately, and has the additional side effect of causing
  1369.        pending output and typeahead to be discarded.
  1370.  
  1371.        There are a number of ways to refer to a job in the shell.
  1372.        The character % introduces a job name.  Job number  n  may
  1373.        be referred to as %n.  A job may also be referred to using
  1374.        a prefix of the name used to start it,  or  using  a  sub-
  1375.        string that appears in its command line.  For example, %ce
  1376.        refers to a stopped ce job.  If a prefix matches more than
  1377.        one  job, bash reports an error.  Using %?ce, on the other
  1378.        hand, would refer to any job containing the string  ce  in
  1379.        its  command line.  If the substring matches more than one
  1380.        job, bash reports an error.  The symbols %% and  %+  refer
  1381.  
  1382.  
  1383.  
  1384. GNU                      1991 November 24                      21
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. BASH(1)                                                   BASH(1)
  1391.  
  1392.  
  1393.        to  the  shell's  notion  of the current job, which is the
  1394.        last job stopped while it was in the foreground.  The pre-
  1395.        vious  job may be referenced using %-.  In output pertain-
  1396.        ing to jobs (e.g. the output of  the  jobs  command),  the
  1397.        current  job  is always flagged with a +, and the previous
  1398.        job with a -.
  1399.  
  1400.        Simply naming a job can be used to bring it into the fore-
  1401.        ground: %1 is a synonym for ``fg %1'', bringing job 1 from
  1402.        the background into the foreground.  Similarly,  ``%1  &''
  1403.        resumes  job 1 in the background, equivalent to ``bg %1''.
  1404.  
  1405.        The shell learns immediately whenever a job changes state.
  1406.        Normally,  bash  waits until it is about to print a prompt
  1407.        before reporting changes in a job's status so  as  to  not
  1408.        interrupt  any  other  output.   If the variable notify is
  1409.        set, bash reports such changes immediately.  (See also the
  1410.        -o notify option to the set builtin command.)
  1411.  
  1412.        If  you  attempt  to exit bash while jobs are stopped, the
  1413.        shell prints a message warning you.  You may then use  the
  1414.        jobs  command to inspect their status.  If you do this, or
  1415.        try to exit again immediately, you are not  warned  again,
  1416.        and the stopped jobs are terminated.
  1417.  
  1418. SIGNALS
  1419.        When bash is interactive, it ignores SIGTERM (so that kill
  1420.        0 does not kill  an  interactive  shell),  and  SIGINT  is
  1421.        caught  and  handled  (so that wait is interruptible).  In
  1422.        all cases, bash ignores SIGQUIT.  If  job  control  is  in
  1423.        effect, bash ignores SIGTTIN, SIGTTOU, and SIGTSTP.
  1424.  
  1425.        Synchronous  jobs  started by bash have signals set to the
  1426.        values inherited by the shell from its parent.  Background
  1427.        jobs  (jobs  started  with  &)  ignore SIGINT and SIGQUIT.
  1428.        Commands run as a result of  command  substitution  ignore
  1429.        the  keyboard-generated job control signals SIGTTIN, SIGT-
  1430.        TOU, and SIGTSTP.
  1431.  
  1432. COMMAND EXECUTION
  1433.        After a command has been split into words, if  it  results
  1434.        in a simple command and an optional list of arguments, the
  1435.        following actions are taken.
  1436.  
  1437.        If  the  command  name  contains  no  slashes,  the  shell
  1438.        attempts  to  locate it.  If there exists a shell function
  1439.        by that name, that function is invoked as described  above
  1440.        in  FUNCTIONS.  If the name does not match a function, the
  1441.        shell searches for it in the list of shell builtins.  If a
  1442.        match is found, that builtin is invoked.
  1443.  
  1444.        If the name is neither a shell function nor a builtin, and
  1445.        contains no slashes, bash searches  each  element  of  the
  1446.        PATH for a directory containing an executable file by that
  1447.  
  1448.  
  1449.  
  1450. GNU                      1991 November 24                      22
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. BASH(1)                                                   BASH(1)
  1457.  
  1458.  
  1459.        name.  If the search is unsuccessful, the shell prints  an
  1460.        error message and returns a nonzero exit status.
  1461.  
  1462.        If  the  search is successful, or if the command name con-
  1463.        tains one or more slashes, the shell  executes  the  named
  1464.        program.   Argument  0  is  set to the name given, and the
  1465.        remaining arguments to the command are set  to  the  argu-
  1466.        ments given, if any.
  1467.  
  1468.        If  this  execution  fails because the file is not in exe-
  1469.        cutable format, and the file is not  a  directory,  it  is
  1470.        assumed to be a shell script, a file containing shell com-
  1471.        mands.  A subshell is spawned to execute  it.   This  sub-
  1472.        shell  reinitializes itself, so that the effect is as if a
  1473.        new shell had been invoked to handle the script, with  the
  1474.        exception that the locations of commands remembered by the
  1475.        parent (see hash below under SHELL BUILTIN  COMMANDS)  are
  1476.        retained by the child.
  1477.  
  1478.        If  the program is a file beginning with #!, the remainder
  1479.        of the first line specifies an interpreter  for  the  pro-
  1480.        gram.   The  shell  executes  the specified interpreter on
  1481.        operating systems that do not handle this executable  for-
  1482.        mat  themselves.  The arguments to the interpreter consist
  1483.        of a single optional argument  following  the  interpreter
  1484.        name  on  the  first  line of the program, followed by the
  1485.        name of the program, followed by the command arguments, if
  1486.        any.
  1487.  
  1488. ENVIRONMENT
  1489.        When  a program is invoked it is given an array of strings
  1490.        called the environment.  This  is  a  list  of  name-value
  1491.        pairs, of the form name=value.
  1492.  
  1493.        The shell allows you to manipulate the environment in sev-
  1494.        eral ways.  On invocation, the shell scans its  own  envi-
  1495.        ronment and creates a parameter for each name found, auto-
  1496.        matically marking it for export to child processes.   Exe-
  1497.        cuted  commands  inherit  the environment.  The export and
  1498.        declare -x commands allow parameters and functions  to  be
  1499.        added  to  and deleted from the environment.  If the value
  1500.        of a parameter in the environment  is  modified,  the  new
  1501.        value  becomes part of the environment, replacing the old.
  1502.        The environment inherited by any executed command consists
  1503.        of  the  shell's  initial environment, whose values may be
  1504.        modified in the shell, less any pairs removed by the unset
  1505.        command,  plus any additions via the export and declare -x
  1506.        commands.
  1507.  
  1508.        The environment for any simple command or function may  be
  1509.        augmented  temporarily  by  prefixing  it  with  parameter
  1510.        assignments, as  described  above  in  PARAMETERS.   These
  1511.        assignment  statements affect only the environment seen by
  1512.        that command.
  1513.  
  1514.  
  1515.  
  1516. GNU                      1991 November 24                      23
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. BASH(1)                                                   BASH(1)
  1523.  
  1524.  
  1525.        If the -k flag is set (see the set builtin command below),
  1526.        then  all parameter assignments are placed in the environ-
  1527.        ment for a command, not just those that precede  the  com-
  1528.        mand name.
  1529.  
  1530. EXIT STATUS
  1531.        For  the purposes of the shell, a command which exits with
  1532.        a zero exit status has succeeded.  An exit status of  zero
  1533.        indicates success.  A non-zero exit status indicates fail-
  1534.        ure.  When a command terminates on a  fatal  signal,  bash
  1535.        uses the value of 128+signal as the exit status.
  1536.  
  1537.        Bash  itself  returns  the exit status of the last command
  1538.        executed, unless a syntax error occurs, in which  case  it
  1539.        exits  with  a  non-zero value.  See also the exit builtin
  1540.        command below.
  1541.  
  1542. PROMPTING
  1543.        When executing interactively, bash  displays  the  primary
  1544.        prompt  PS1  when  it  is ready to read a command, and the
  1545.        secondary prompt PS2 when it needs more input to  complete
  1546.        a  command.   Bash  allows  the prompt to be customized by
  1547.        inserting a number of backslash-escaped special characters
  1548.        that are decoded as follows:
  1549.               \t     the time
  1550.               \d     the date
  1551.               \n     CRLF
  1552.               \s     the  name  of  the shell, the basename of $0
  1553.                      (the portion following the final slash)
  1554.               \w     the current working directory
  1555.               \W     the basename of the current  working  direc-
  1556.                      tory
  1557.               \u     the username of the current user
  1558.               \h     the hostname
  1559.               \#     the command number of this command
  1560.               \!     the history number of this command
  1561.               \$     if  the effective UID is 0, a #, otherwise a
  1562.                      $
  1563.               \nnn   character code in octal
  1564.               \\     a backslash
  1565.  
  1566.        After   the   string   is   decoded,   if   the   variable
  1567.        NO_PROMPT_VARS  is  not  set, it is expanded via parameter
  1568.        expansion, command substitution, arithmetic expansion, and
  1569.        word splitting.
  1570.  
  1571. READLINE
  1572.        This  is the library that handles reading input when using
  1573.        an interactive shell, unless the -nolineediting option  is
  1574.        given.   By default, the line editing commands are similar
  1575.        to those of emacs.  A vi-style line editing  interface  is
  1576.        also available.
  1577.  
  1578.        In  this  section,  the  emacs-style  notation  is used to
  1579.  
  1580.  
  1581.  
  1582. GNU                      1991 November 24                      24
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. BASH(1)                                                   BASH(1)
  1589.  
  1590.  
  1591.        denote keystrokes.  Control keys  are  denoted  by  C-key,
  1592.        e.g.  C-n  means  Control-N.   Similarly,  meta  keys  are
  1593.        denoted by M-key, so  M-x  means  Meta-X.   (On  keyboards
  1594.        without a meta key, M-x means ESC x, i.e. press the Escape
  1595.        key  then  the  x  key.   The  combination   M-C-x   means
  1596.        ESC-Control-x,  or press the Escape key then hold the Con-
  1597.        trol key while pressing the x key.)
  1598.  
  1599.        The default key-bindings may be changed with an ~/.inputrc
  1600.        file.   Other programs that use this library may add their
  1601.        own commands and bindings.
  1602.  
  1603.        For example, placing
  1604.  
  1605.               M-Control-u: universal-argument
  1606.        or
  1607.               C-Meta-u: universal-argument
  1608.        into the ~/.inputrc would make M-C-u execute  the  command
  1609.        universal-argument.
  1610.  
  1611.        The  following  symbolic  character  names are recognized:
  1612.        RUBOUT, DEL, ESC, NEWLINE, SPACE, RETURN, LFD, TAB.
  1613.  
  1614.        Placing
  1615.  
  1616.               set editing-mode vi
  1617.  
  1618.        into a ~/.inputrc file causes bash to start with a vi-like
  1619.        editing  mode.   The  editing  mode may be switched during
  1620.        interactive use by using the -o option to the set  builtin
  1621.        command (see SHELL BUILTIN COMMANDS below).
  1622.  
  1623.        You  can  have  readline  use  a  single line for display,
  1624.        scrolling the input between the two borders by placing
  1625.  
  1626.               set horizontal-scroll-mode On
  1627.  
  1628.        into a ~/.inputrc file.
  1629.  
  1630.        The following is a list of the names of the  commands  and
  1631.        the default key-strokes to get them.
  1632.  
  1633.    Commands for Moving
  1634.        beginning-of-line (C-a)
  1635.               Move to the start of the current line.
  1636.        end-of-line (C-e)
  1637.               Move to the end of the line.
  1638.        forward-char (C-f)
  1639.               Move forward a character.
  1640.        backward-char (C-b)
  1641.               Move back a character.
  1642.        forward-word (M-f)
  1643.               Move forward to the end of the next word.
  1644.  
  1645.  
  1646.  
  1647.  
  1648. GNU                      1991 November 24                      25
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. BASH(1)                                                   BASH(1)
  1655.  
  1656.  
  1657.        backward-word (M-b)
  1658.               Move  back  to  the start of this, or the previous,
  1659.               word.
  1660.        clear-screen (C-l)
  1661.               Clear the screen leaving the current  line  at  the
  1662.               top of the screen.
  1663.  
  1664.    Commands for Manipulating the History
  1665.        accept-line (Newline, Return)
  1666.               Accept  the line regardless of where the cursor is.
  1667.               If this line is non-empty, add it  to  the  history
  1668.               list  according to the state of the history_control
  1669.               variable.  If this line was a  history  line,  then
  1670.               restore the history line to its original state.
  1671.        previous-history (C-p)
  1672.               Fetch  the  previous command from the history list,
  1673.               moving back in the list.
  1674.        next-history (C-n)
  1675.               Fetch the next command from the history list,  mov-
  1676.               ing forward in the list.
  1677.        beginning-of-history (M-<)
  1678.               Move  to  the  first line in the history, the first
  1679.               line entered.
  1680.        end-of-history (M->)
  1681.               Move to the end of the  input  history,  i.e.,  the
  1682.               line you are entering.
  1683.        reverse-search-history (C-r)
  1684.               Search  backward  starting  at the current line and
  1685.               moving `up' through the history as necessary.  This
  1686.               is an incremental search.
  1687.        forward-search-history (C-s)
  1688.               Search  forward  starting  at  the current line and
  1689.               moving `down' through the history as necessary.
  1690.        shell-expand-line (M-C-e)
  1691.               Expand the line the way  the  shell  does  when  it
  1692.               reads  it.   This performs alias and history expan-
  1693.               sion.  See HISTORY below.
  1694.        insert-last-argument (M-., M-_)
  1695.               Insert the last argument to  the  previous  command
  1696.               (the last word on the previous line).
  1697.        operate-and-get-next (C-O)
  1698.               Accept the current line for execution and fetch the
  1699.               next line relative to the  current  line  from  the
  1700.               history file for editing.
  1701.  
  1702.    Commands for Changing Text
  1703.        delete-char (C-d)
  1704.               Delete the character under the cursor.  If the cur-
  1705.               sor is at the beginning of the line, and there  are
  1706.               no  characters  in the line, and the last character
  1707.               typed was not C-d, then return EOF.
  1708.        backward-delete-char (Rubout)
  1709.               Delete the character behind the cursor.  A  numeric
  1710.               arg says to kill the characters instead of deleting
  1711.  
  1712.  
  1713.  
  1714. GNU                      1991 November 24                      26
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. BASH(1)                                                   BASH(1)
  1721.  
  1722.  
  1723.               them.
  1724.        quoted-insert (C-q, C-v)
  1725.               Add the next character that you type  to  the  line
  1726.               verbatim.   This  is  how to insert characters like
  1727.               C-q, for example.
  1728.        tab-insert (M-TAB)
  1729.               Insert a tab character.
  1730.        self-insert (a, b, A, 1, !, ...)
  1731.               Insert the character typed.
  1732.        transpose-chars (C-t)
  1733.               Drag the character before point  forward  over  the
  1734.               character  at  point.  Point moves forward as well.
  1735.               If point is at the end of the line, then  transpose
  1736.               the  two  characters  before point.  Negative argu-
  1737.               ments don't work.
  1738.        transpose-words (M-t)
  1739.               Drag the word behind the cursor past  the  word  in
  1740.               front  of  the  cursor  moving the cursor over that
  1741.               word as well.
  1742.        upcase-word (M-u)
  1743.               Uppercase the current (or following) word.  With  a
  1744.               negative argument, do the previous word, but do not
  1745.               move point.
  1746.        downcase-word (M-l)
  1747.               Lowercase the current (or following) word.  With  a
  1748.               negative argument, do the previous word, but do not
  1749.               move point.
  1750.        capitalize-word (M-c)
  1751.               Capitalize the current (or following) word.  With a
  1752.               negative argument, do the previous word, but do not
  1753.               move point.
  1754.  
  1755.    Killing and Yanking
  1756.        kill-line (C-k)
  1757.               Kill the text from the current cursor  position  to
  1758.               the end of the line.  This saves the killed text on
  1759.               the kill-ring.  (see below)
  1760.        backward-kill-line
  1761.               Kill backward to the beginning of the  line.   This
  1762.               is normally unbound, in favor of unix-line-discard,
  1763.               which emulates the behavior of  the  standard  Unix
  1764.               terminal driver.
  1765.        kill-word (M-d)
  1766.               Kill  from  the  cursor  to  the end of the current
  1767.               word, or if between words, to the end of  the  next
  1768.               word.
  1769.        backward-kill-word (M-Rubout)
  1770.               Kill the word behind the cursor.
  1771.        unix-line-discard (C-u)
  1772.               Do what C-u used to do in Unix line input.  We save
  1773.               the killed text on the kill-ring, though.
  1774.        unix-word-rubout (C-w)
  1775.               Do what C-w used to do in  Unix  line  input.   The
  1776.               killed  text  is  saved  on the kill-ring.  This is
  1777.  
  1778.  
  1779.  
  1780. GNU                      1991 November 24                      27
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. BASH(1)                                                   BASH(1)
  1787.  
  1788.  
  1789.               different than backward-kill-word because the  word
  1790.               boundaries differ.
  1791.        yank (C-y)
  1792.               Yank  the  top  of the kill ring into the buffer at
  1793.               point.
  1794.        yank-pop (M-y)
  1795.               Rotate the kill-ring, and yank the new  top.   Only
  1796.               works following `yank' or `yank-pop'.
  1797.  
  1798.    Arguments
  1799.        digit-argument (M-0, M-1, ..., M--)
  1800.               Add  this  digit to the argument already accumulat-
  1801.               ing, or start a new argument.  M-- starts  a  nega-
  1802.               tive argument.
  1803.        universal-argument
  1804.               Do what C-u does in emacs.  By default, this is not
  1805.               bound to a key.
  1806.  
  1807.    Completing
  1808.        complete (TAB)
  1809.               Attempt to perform completion on  the  text  before
  1810.               point.   Bash attempts completion treating the text
  1811.               as a variable (if the text begins with $), username
  1812.               (if  the text begins with ~), hostname (if the text
  1813.               begins with @), or command (including  aliases  and
  1814.               functions)  in  turn.   If none of these produces a
  1815.               match, filename completion is attempted.
  1816.        possible-completions (M-?)
  1817.               List the possible completions of  the  text  before
  1818.               point.
  1819.        complete-filename (M-/)
  1820.               Attempt  filename  completion  on  the  text before
  1821.               point.
  1822.        possible-filename-completions (C-x /)
  1823.               List the possible completions of  the  text  before
  1824.               point, treating it as a filename.
  1825.        complete-username (M-~)
  1826.               Attempt completion on the text before point, treat-
  1827.               ing it as a username.
  1828.        possible-username-completions (C-x ~)
  1829.               List the possible completions of  the  text  before
  1830.               point, treating it as a username.
  1831.        complete-variable (M-$)
  1832.               Attempt completion on the text before point, treat-
  1833.               ing it as a shell variable.
  1834.        possible-variable-completions (C-x $)
  1835.               List the possible completions of  the  text  before
  1836.               point, treating it as a shell variable.
  1837.        complete-hostname (M-@)
  1838.               Attempt completion on the text before point, treat-
  1839.               ing it as a hostname.
  1840.        possible-hostname-completions (C-x @)
  1841.               List the possible completions of  the  text  before
  1842.               point, treating it as a hostname.
  1843.  
  1844.  
  1845.  
  1846. GNU                      1991 November 24                      28
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. BASH(1)                                                   BASH(1)
  1853.  
  1854.  
  1855.    Miscellaneous
  1856.        abort (C-g)
  1857.               Abort the current editing command and ring the ter-
  1858.               minal's bell.
  1859.        do-uppercase-version (M-a, M-b, ...)
  1860.               Run the command that is  bound  to  the  uppercased
  1861.               key.
  1862.        prefix-meta (ESC)
  1863.               Metafy  the next character typed.  This is for peo-
  1864.               ple without a meta key.  ESC  f  is  equivalent  to
  1865.               Meta-f.
  1866.        undo (C-_)
  1867.               Incremental  undo,  separately  remembered for each
  1868.               line.
  1869.        revert-line (M-r)
  1870.               Undo all changes made to this line.  This  is  like
  1871.               typing  the `undo' command enough times to get back
  1872.               to the beginning.
  1873.        display-shell-version (C-x C-v)
  1874.               Display  version  information  about  the   current
  1875.               instance of bash.
  1876.        emacs-editing-mode (C-e)
  1877.               When  in  vi  editing mode, this causes a switch to
  1878.               emacs editing mode.
  1879.        vi-editing-mode (M-C-j or M-C-m)
  1880.               When in emacs editing mode, this causes a switch to
  1881.               vi editing mode.
  1882.  
  1883. HISTORY
  1884.        The  shell  supports  a  history expansion feature that is
  1885.        similar to the history expansion  in  csh.   This  section
  1886.        describes what syntax features are available.
  1887.  
  1888.        History  expansion  is  performed immediately after a com-
  1889.        plete line is read, before the shell breaks it into words.
  1890.        It  takes  place  in  two parts.  The first is determining
  1891.        which line from the previous history to use during substi-
  1892.        tution.  The second is to select portions of that line for
  1893.        inclusion into the current one.  The  line  selected  from
  1894.        the  previous  history  is  the event, and the portions of
  1895.        that line that are acted upon are words.  The line is bro-
  1896.        ken  into words in the same fashion as when reading input,
  1897.        so that several English,  or  Unix,  words  surrounded  by
  1898.        quotes are considered as one word.  Only backslash (\) can
  1899.        quote the history escape character, which is ! by default.
  1900.  
  1901.    Event Designators
  1902.        An event designator is a reference to a command line entry
  1903.        in the history list.
  1904.  
  1905.        !      Start a history substitution, except when  followed
  1906.               by a <space>, <tab>, <newline>, = or (.
  1907.        !!     Refer  to  the previous command.  This is a synonym
  1908.               for `!-1'.
  1909.  
  1910.  
  1911.  
  1912. GNU                      1991 November 24                      29
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. BASH(1)                                                   BASH(1)
  1919.  
  1920.  
  1921.        !n     Refer to command line n.
  1922.        !-n    Refer to the current command line minus n.
  1923.        !string
  1924.               Refer to the  most  recent  command  starting  with
  1925.               string.
  1926.        !?string[?]
  1927.               Refer to the most recent command containing string.
  1928.  
  1929.    Word Designators
  1930.        A : separates the event specification from the word desig-
  1931.        nator.   It  can  be omitted if the word designator begins
  1932.        with a ^, $, *, or %.  Words are numbered from the  begin-
  1933.        ning of the line, with the first word being denoted by a 0
  1934.        (zero).
  1935.  
  1936.        #      The entire command line typed so far.   This  means
  1937.               the  current  command, not the previous command, so
  1938.               it really isn't  a  word  designator,  and  doesn't
  1939.               belong in this section.
  1940.        0 (zero)
  1941.               The  zeroth  word.  For the shell, this is the com-
  1942.               mand word.
  1943.        n      The nth word.
  1944.        ^      The first argument.  That is, word 1.
  1945.        $      The last argument.
  1946.        %      The word matched  by  the  most  recent  `?string?'
  1947.               search.
  1948.        x-y    A range of words; `-y' abbreviates `0-y'.
  1949.        *      All of the words but the zeroth.  This is a synonym
  1950.               for `1-$'.  It is not an error to use * if there is
  1951.               just  one  word  in  the event; the empty string is
  1952.               returned in that case.
  1953.  
  1954.    Modifiers
  1955.        After the optional word designator, you can add a sequence
  1956.        of  one  or more of the following modifiers, each preceded
  1957.        by a `:'.
  1958.  
  1959.        h      Remove a trailing pathname component, leaving  only
  1960.               the head.
  1961.        r      Remove  a trailing suffix of the form ".xxx", leav-
  1962.               ing the basename.
  1963.        e      Remove all but the suffix.
  1964.        t      Remove all leading pathname components, leaving the
  1965.               tail.
  1966.        p      Print  the new command but do not execute it.  This
  1967.               takes effect immediately, so it should be the  last
  1968.               specifier on the line.
  1969.  
  1970. ARITHMETIC EVALUATION
  1971.        The  shell  allows arithmetic expressions to be evaluated,
  1972.        under certain circumstances (see the let  builtin  command
  1973.        and  Arithmetic  Expansion).   Evaluation  is done in long
  1974.        integers with no check for overflow, though division by  0
  1975.  
  1976.  
  1977.  
  1978. GNU                      1991 November 24                      30
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. BASH(1)                                                   BASH(1)
  1985.  
  1986.  
  1987.        is trapped and flagged as an error.  The following list of
  1988.        operators is grouped into levels of equal-precedence oper-
  1989.        ators.   The  levels  are  listed  in  order of decreasing
  1990.        precedence.
  1991.  
  1992.        -      unary minus
  1993.        !      logical NOT
  1994.        * / %  multiplication, division, remainder
  1995.        + -    addition, subtraction
  1996.        <= >= < >
  1997.               comparison
  1998.        == !=  equality and inequality
  1999.        =      assignment
  2000.  
  2001.        Shell variables are allowed as operands; parameter  expan-
  2002.        sion is performed before the expression is evaluated.  The
  2003.        value of a parameter is coerced to a long  integer  within
  2004.        an expression.  A shell variable need not have its integer
  2005.        attribute turned on to be used in an expression.
  2006.  
  2007.        Operators are evaluated  in  order  of  precedence.   Sub-
  2008.        expressions  in  parentheses  are  evaluated first and may
  2009.        override the precedence rules above.
  2010.  
  2011. SHELL BUILTIN COMMANDS
  2012.        : [arguments]
  2013.               No effect; the command does nothing beyond  expand-
  2014.               ing arguments and performing any specified redirec-
  2015.               tions.  A zero exit code is returned.
  2016.        . filename
  2017.        source filename
  2018.               Read and execute commands from filename in the cur-
  2019.               rent  shell  environment and return the exit status
  2020.               of the last command executed from filename.   Path-
  2021.               names  in  PATH are used to find the directory con-
  2022.               taining filename, if filename does  not  contain  a
  2023.               slash.   The  file searched for in PATH need not be
  2024.               executable.  The current directory is  searched  if
  2025.               no file is found in PATH.  The return status is the
  2026.               status of the last command exited within the script
  2027.               (true  if  no  commands are executed), and false if
  2028.               filename is not found.
  2029.  
  2030.        alias [name[=value] ...]
  2031.               Alias with no arguments prints the list of  aliases
  2032.               in  the  form  name=value on standard output.  When
  2033.               arguments are supplied, an  alias  is  defined  for
  2034.               each  name  whose value is given.  A trailing space
  2035.               in value causes the next word  to  be  checked  for
  2036.               alias  substitution  when  the  alias  is expanded.
  2037.               Alias returns true unless a name is given for which
  2038.               no alias has been defined.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044. GNU                      1991 November 24                      31
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050. BASH(1)                                                   BASH(1)
  2051.  
  2052.  
  2053.        bg [jobspec]
  2054.               Place  jobspec in the background, as if it had been
  2055.               started with &.  If jobspec  is  not  present,  the
  2056.               shell's notion of the current job is used.
  2057.  
  2058.        bind [-lvd] [-q name]
  2059.        bind -f filename
  2060.        bind keyseq:function-name
  2061.               Display current readline key and function bindings,
  2062.               or bind a key sequence to a  readline  function  or
  2063.               macro.  The binding syntax accepted is identical to
  2064.               that of .inputrc, but each binding must  be  passed
  2065.               as  a separate argument; e.g. '"\C-x\C-r": re-read-
  2066.               init-file'.  Options, if supplied, have the follow-
  2067.               ing meanings:
  2068.               -l     List the names of all readline functions
  2069.               -v     List current function names and bindings
  2070.               -d     Dump  function  names and bindings in such a
  2071.                      way that they can be re-read
  2072.               -f filename
  2073.                      Read key bindings from filename
  2074.               -q function
  2075.                      Query about  which  keys  invoke  the  named
  2076.                      function
  2077.  
  2078.        break [n]
  2079.               Exit from within a for, while, or until loop.  If n
  2080.               is specified, break n levels.  n must be >= 1.   If
  2081.               n  is  greater  than the number of enclosing loops,
  2082.               all enclosing loops are exited.  The  return  value
  2083.               is  0 unless the shell is not executing a loop when
  2084.               break is executed.
  2085.  
  2086.        builtin [shell-builtin [arguments]]
  2087.               Execute the specified  shell  builtin,  passing  it
  2088.               arguments,  and  return  its  exit status.  This is
  2089.               useful when you wish to  define  a  function  whose
  2090.               name  is  the same as a shell builtin, but need the
  2091.               functionality of the builtin  within  the  function
  2092.               itself.   The cd builtin is commonly redefined this
  2093.               way.
  2094.  
  2095.        cd [dir]
  2096.               Change the current directory to dir.  The  variable
  2097.               HOME  is  the  default  dir.   The  variable CDPATH
  2098.               defines the search path for the directory  contain-
  2099.               ing dir.  Alternative directory names are separated
  2100.               by a colon (:).  A null directory name in CDPATH is
  2101.               the  same as the current directory, i.e. ``.''.  If
  2102.               dir begins with a slash (/),  then  CDPATH  is  not
  2103.               used.   An  argument of - is equivalent to $OLDPWD.
  2104.               The return value is true if the directory was  suc-
  2105.               cessfully changed; false otherwise.
  2106.  
  2107.  
  2108.  
  2109.  
  2110. GNU                      1991 November 24                      32
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116. BASH(1)                                                   BASH(1)
  2117.  
  2118.  
  2119.        command [-p] [command [arg ...]]
  2120.               Run  command with args suppressing the normal shell
  2121.               function lookup. Only builtin commands or  commands
  2122.               found  in  the PATH are executed.  If the -p option
  2123.               is given, the search for command is performed using
  2124.               a default value for PATH that is guaranteed to find
  2125.               all of the standard utilities.  An argument  of  --
  2126.               disables  option checking for the rest of the argu-
  2127.               ments.  If an error occurred or command  cannot  be
  2128.               found, the exit status is 127.  Otherwise, the exit
  2129.               status of the command builtin is the exit status of
  2130.               command.
  2131.  
  2132.        continue [n]
  2133.               Resume  the  next  iteration  of the enclosing for,
  2134.               while, or until loop.  If n is specified, resume at
  2135.               the  nth  enclosing loop.  n must be >= 1.  If n is
  2136.               greater than the number  of  enclosing  loops,  the
  2137.               last  enclosing  loop  (the  `top-level'  loop)  is
  2138.               resumed.  The return value is 0 unless the shell is
  2139.               not executing a loop when continue is executed.
  2140.  
  2141.        declare [-frxi] [name[=value]]
  2142.        typeset [-frxi] [name[=value]]
  2143.               Declare  variables and/or give them attributes.  If
  2144.               no names are given,  then  display  the  values  of
  2145.               variables instead.
  2146.               -f     Use function names only
  2147.               -r     Make  names  readonly.   These  names cannot
  2148.                      then  be  assigned  values   by   subsequent
  2149.                      assignment statements.
  2150.               -x     Mark names for export to subsequent commands
  2151.                      via the environment.
  2152.               -i     The  variable  is  treated  as  an  integer;
  2153.                      arithmetic evaluation (see ARITHMETIC EVALU-
  2154.                      ATION ) is performed when  the  variable  is
  2155.                      assigned a value.
  2156.  
  2157.               Using  `+'  instead  of `-' turns off the attribute
  2158.               instead.  When used  in  a  function,  makes  names
  2159.               local, as with the local command.
  2160.  
  2161.        dirs [-l]
  2162.               Display  the  list of currently remembered directo-
  2163.               ries.  Directories are added to the list  with  the
  2164.               pushd  command;  the  popd  command  moves  back up
  2165.               through the list.  The -l option produces a  longer
  2166.               listing; the default listing format uses a tilde to
  2167.               denote the home directory.
  2168.  
  2169.        echo [-ne] [arg ...]
  2170.               Output the args, separated by  spaces.   If  -n  is
  2171.               specified,  the trailing newline is suppressed.  If
  2172.               the -e  option  is  given,  interpretation  of  the
  2173.  
  2174.  
  2175.  
  2176. GNU                      1991 November 24                      33
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. BASH(1)                                                   BASH(1)
  2183.  
  2184.  
  2185.               following backslash-escaped characters is enabled:
  2186.               \a     alert (bell)
  2187.               \b     backspace
  2188.               \c     suppress trailing newline
  2189.               \f     form feed
  2190.               \n     new line
  2191.               \r     carriage return
  2192.               \t     horizontal tab
  2193.               \v     vertical tab
  2194.               \\     backslash
  2195.               \nnn   the   character  whose  ASCII  code  is  nnn
  2196.                      (octal)
  2197.  
  2198.        enable [-n] [name ...]
  2199.               Enable and disable builtin  shell  commands.   This
  2200.               allows  the  execution  of a disk command which has
  2201.               the same name as a shell builtin without specifying
  2202.               a  full pathname.  If -n is used, each name is dis-
  2203.               abled; otherwise, names are enabled.  For  example,
  2204.               to  use the test found in PATH instead of the shell
  2205.               builtin version, type ``enable -n test''.
  2206.  
  2207.        eval [arg ...]
  2208.               The args are read and concatenated together into  a
  2209.               single command.  This command is then read and exe-
  2210.               cuted by the shell, and its exit status is returned
  2211.               as  the value of the eval command.  If there are no
  2212.               args, or only null arguments, eval returns true.
  2213.  
  2214.        exec [[-] command [arguments]]
  2215.               If command is specified, it replaces the shell.  No
  2216.               new  process  is created.  The arguments become the
  2217.               arguments to command.  If the first argument is  -,
  2218.               the shell places a dash in the zeroth arg passed to
  2219.               command.  This is what login  does.   If  the  file
  2220.               cannot  be  executed  for  some  reason,  the shell
  2221.               exits,     unless      the      shell      variable
  2222.               no_exit_on_failed_exec  exists.   If command is not
  2223.               specified, any redirections take effect in the cur-
  2224.               rent shell.
  2225.  
  2226.        exit [n]
  2227.        bye [n]
  2228.               Cause  the  shell to exit with a status of n.  If n
  2229.               is omitted, the exit status is  that  of  the  last
  2230.               command  executed.   A  trap  on  EXIT  is executed
  2231.               before the shell terminates.
  2232.  
  2233.        export [-npf] [name[=word]] ...
  2234.               The supplied names are marked for automatic  export
  2235.               to  the  environment  of subsequently executed com-
  2236.               mands.  If the -f option is given, the names  refer
  2237.               to  functions.  If no names are given, or if the -p
  2238.               option is supplied, a list of all  names  that  are
  2239.  
  2240.  
  2241.  
  2242. GNU                      1991 November 24                      34
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248. BASH(1)                                                   BASH(1)
  2249.  
  2250.  
  2251.               exported  in  this shell is printed.  The -n option
  2252.               causes the export property to be removed  from  the
  2253.               named variables.  An argument of -- disables option
  2254.               checking for the rest  of  the  arguments.   export
  2255.               returns  an  exit  status of true unless an illegal
  2256.               option is encountered.
  2257.  
  2258.        fc [-e ename] [-nlr] [first] [last]
  2259.        fc -s [pat=rep] [cmd]
  2260.               Fix Command.  In the first form, a  range  of  com-
  2261.               mands  from first to last is selected from the his-
  2262.               tory list.  First and last may be  specified  as  a
  2263.               string  (to  locate the last command beginning with
  2264.               that string) or as a number (an index into the his-
  2265.               tory  list,  where  a negative number is used as an
  2266.               offset from the current command number).   If  last
  2267.               is  not  specified it is set to the current command
  2268.               for listing (so that fc -l -10 prints the  last  10
  2269.               commands)  and to first otherwise.  If first is not
  2270.               specified it is set to  the  previous  command  for
  2271.               editing and -16 for listing.
  2272.  
  2273.               The  -n  flag  suppresses  the command numbers when
  2274.               listing.  The -r flag reverses  the  order  of  the
  2275.               commands.   If  the  -l flag is given, the commands
  2276.               are listed on standard output.  Otherwise, the edi-
  2277.               tor  given by ename is invoked on a file containing
  2278.               those commands.  If ename is not given,  the  value
  2279.               of  the  FCEDIT  variable is used, and the value of
  2280.               EDITOR if FCEDIT is not set.  If  neither  variable
  2281.               is  set, vi is used.  When editing is complete, the
  2282.               edited commands are echoed and executed.
  2283.  
  2284.               In the second  form,  the  command  is  re-executed
  2285.               after  the  substitution  old=new  is performed.  A
  2286.               useful alias to use with this is  ``r=fc  -s'',  so
  2287.               that  typing  ``r cc'' runs the last command begin-
  2288.               ning with ``cc'' and typing ``r''  re-executes  the
  2289.               last command.
  2290.  
  2291.        fg [jobspec]
  2292.               Place  jobspec  in  the foreground, and make it the
  2293.               current  job.   If  jobspec  is  not  present,  the
  2294.               shell's notion of the current job is used.
  2295.  
  2296.        getopts optstring name [args]
  2297.               getopts  is used by shell procedures to parse posi-
  2298.               tional parameters.  optstring contains  the  option
  2299.               letters  to  be recognized; if a letter is followed
  2300.               by a colon, the option is expected to have an argu-
  2301.               ment,  which  should  be separated from it by white
  2302.               space.  Each time it is invoked, getopts places the
  2303.               next  option in the shell variable name, initializ-
  2304.               ing name if it does not exist, and the index of the
  2305.  
  2306.  
  2307.  
  2308. GNU                      1991 November 24                      35
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314. BASH(1)                                                   BASH(1)
  2315.  
  2316.  
  2317.               next  argument  to  be  processed into the variable
  2318.               OPTIND.  OPTIND is initialized to 1 each  time  the
  2319.               shell or a shell script is invoked.  When an option
  2320.               requires an argument, getopts places that  argument
  2321.               into the variable OPTARG.  The shell does not reset
  2322.               OPTIND automatically; it  must  be  manually  reset
  2323.               between  multiple  calls to getopts within the same
  2324.               shell invocation if a new set of parameters  is  to
  2325.               be used.
  2326.  
  2327.               getopts  can  report  errors  in  two ways.  If the
  2328.               first character of optstring  is  a  colon,  silent
  2329.               error reporting is used.  In normal operation diag-
  2330.               nostic messages are printed when illegal options or
  2331.               missing  option  arguments are encountered.  If the
  2332.               variable OPTERR is set to 0, no error message  will
  2333.               be  displayed,  even if the first character of opt-
  2334.               string is not a colon.
  2335.  
  2336.               If an illegal option is seen, getopts places ? into
  2337.               name  and,  if  not silent, prints an error message
  2338.               and unsets  OPTARG.   If  getopts  is  silent,  the
  2339.               option  character  found is placed in OPTARG and no
  2340.               diagnostic message is printed.
  2341.  
  2342.               If a required argument is not found, and getopts is
  2343.               not  silent, a question mark (?) is placed in name,
  2344.               OPTARG  is  unset,  and  a  diagnostic  message  is
  2345.               printed.  If getopts is silent, then a colon (:) is
  2346.               placed in name and OPTARG  is  set  to  the  option
  2347.               character found.
  2348.  
  2349.               getopts  normally parses the positional parameters,
  2350.               but if more arguments are given  in  args,  getopts
  2351.               parses  those  instead.  getopts returns true if an
  2352.               option, specified or  unspecified,  is  found.   It
  2353.               returns  false if the end of options is encountered
  2354.               or an error occurs.
  2355.  
  2356.        hash [-r] [name]
  2357.               For each name, the full pathname of the command  is
  2358.               determined  and  remembered.   The -r option causes
  2359.               the shell to forget all remembered  locations.   If
  2360.               no  arguments  are  given, information about remem-
  2361.               bered commands is printed.  An argument of --  dis-
  2362.               ables  option  checking  for  the rest of the argu-
  2363.               ments.  The return status is true unless a name  is
  2364.               not found or an illegal option is supplied.
  2365.  
  2366.        help [pattern]
  2367.               Display helpful information about builtin commands.
  2368.               If pattern is specified, help gives  detailed  help
  2369.               on  all commands matching pattern; otherwise a list
  2370.               of the builtins is printed.
  2371.  
  2372.  
  2373.  
  2374. GNU                      1991 November 24                      36
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. BASH(1)                                                   BASH(1)
  2381.  
  2382.  
  2383.        history [n]
  2384.        history -rwan [filename]
  2385.               With no options, display the command  history  list
  2386.               with line numbers.  Lines listed with with a * have
  2387.               been modified.  An argument of  n  lists  only  the
  2388.               last  n  lines.   If  a non-option argument is sup-
  2389.               plied, it is used as the name of the history  file;
  2390.               if    not,   the   value   of   HISTFILE   (default
  2391.               ~/.bash_history) is used.   Options,  if  supplied,
  2392.               have the following meanings:
  2393.               -a     Append  the  ``new''  history lines (history
  2394.                      lines entered since  the  beginning  of  the
  2395.                      current bash session) to the history file
  2396.               -n     Read the history lines not already read from
  2397.                      the history file into  the  current  history
  2398.                      list.   These are lines appended to the his-
  2399.                      tory file since the beginning of the current
  2400.                      bash session.
  2401.               -r     read  the  contents  of the history file and
  2402.                      use them as the current history
  2403.               -w     write the current  history  to  the  history
  2404.                      file,  overwriting  the  history file's con-
  2405.                      tents.
  2406.  
  2407.        jobs [-lnp] [ jobspec ... ]
  2408.        jobs -x command [ args ... ]
  2409.               The first form  lists  the  active  jobs.   The  -l
  2410.               option  lists process IDs in addition to the normal
  2411.               information; the -p option lists only  the  process
  2412.               ID  of  the  job's  process  group  leader.  The -n
  2413.               option displays only jobs that have changed  status
  2414.               since last notfied.  If jobspec is given, output is
  2415.               restricted to information about that job.
  2416.  
  2417.               If the -x option is  supplied,  jobs  replaces  any
  2418.               jobspec  found  in  command or args with the corre-
  2419.               sponding process group  ID,  and  executes  command
  2420.               passing it args.
  2421.  
  2422.        kill [-s sigspec | -sigspec] [pid | jobspec] ...
  2423.        kill -l [signum]
  2424.               Send  the  signal named by sigspec to the processes
  2425.               named by pid or jobspec.  sigspec is either a  sig-
  2426.               nal  name  such  as SIGKILL or a signal number.  If
  2427.               sigspec is a signal name, the name is case insensi-
  2428.               tive  and may be given with or without the SIG pre-
  2429.               fix.  If sigspec is not present,  then  SIGTERM  is
  2430.               assumed.  An argument of -l lists the signal names.
  2431.               If any arguments are supplied when -l is given, the
  2432.               names  of  the  specified  signals  are listed.  An
  2433.               argument of -- disables  option  checking  for  the
  2434.               rest  of  the  arguments.   kill returns true if at
  2435.               least one signal was successfully sent, or false if
  2436.               an error occurs.
  2437.  
  2438.  
  2439.  
  2440. GNU                      1991 November 24                      37
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446. BASH(1)                                                   BASH(1)
  2447.  
  2448.  
  2449.        let arg [arg ...]
  2450.               Each  arg  is an arithmetic expression to be evalu-
  2451.               ated (see ARITHMETIC EVALUATION).  If the last  arg
  2452.               evaluates to 0, let returns 1; 0 is returned other-
  2453.               wise.
  2454.  
  2455.        local [name[=value]]
  2456.               Create a local variable named name, and  assign  it
  2457.               value.   When  local  is used within a function, it
  2458.               causes the variable name to have  a  visible  scope
  2459.               restricted to that function and its children.  With
  2460.               no operands, local writes a list of local variables
  2461.               to  the  standard  output.   It  is an error to use
  2462.               local when not within a function.
  2463.  
  2464.        logout Exit a login shell.
  2465.  
  2466.        popd [+/-n]
  2467.               Removes entries from the directory stack.  With  no
  2468.               arguments,  removes  the  top  directory  from  the
  2469.               stack, and performs a cd to the new top  directory.
  2470.               +n     removes the nth entry counting from the left
  2471.                      of the list shown  by  dirs,  starting  with
  2472.                      zero.   For example: ``popd +0'' removes the
  2473.                      first directory, ``popd +1'' the second.
  2474.               -n     removes the  nth  entry  counting  from  the
  2475.                      right  of  the  list shown by dirs, starting
  2476.                      with zero.  For example: ``popd -0'' removes
  2477.                      the  last directory, ``popd -1'' the next to
  2478.                      last.
  2479.  
  2480.               If the variable pushd_silent is unset and the  popd
  2481.               command is successful, a dirs is performed as well.
  2482.  
  2483.        pushd dir
  2484.        pushd +/-n
  2485.               Adds a directory to the top of the directory stack,
  2486.               or  rotates  the  stack,  making the new top of the
  2487.               stack the current working directory.  With no argu-
  2488.               ments, exchanges the top two directories.
  2489.               +n     Rotates  the stack so that the nth directory
  2490.                      (counting from the left of the list shown by
  2491.                      dirs) is at the top.
  2492.               -n     Rotates  the stack so that the nth directory
  2493.                      (counting from the right) is at the top.
  2494.               dir    adds dir to the directory stack at the  top,
  2495.                      making it the new current working directory.
  2496.  
  2497.               If the variable pushd_silent is  not  set  and  the
  2498.               pushd command is successful, a dirs is performed as
  2499.               well.
  2500.  
  2501.        pwd    Print the absolute pathname of the current  working
  2502.               directory.   The  path printed contains no symbolic
  2503.  
  2504.  
  2505.  
  2506. GNU                      1991 November 24                      38
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512. BASH(1)                                                   BASH(1)
  2513.  
  2514.  
  2515.               links (but see the  description  of  nolinks  under
  2516.               Shell Variables above).
  2517.  
  2518.        read [-r] [name ...]
  2519.               One  line  is read from the standard input, and the
  2520.               first word is assigned to the first name, the  sec-
  2521.               ond  word to the second name, and so on, with left-
  2522.               over words assigned to the  last  name.   Only  the
  2523.               characters  in  IFS  are  recognized as word delim-
  2524.               iters.  The return code is zero, unless end-of-file
  2525.               is encountered.  If the -r option is given, a back-
  2526.               slash-newline pair is not ignored,  and  the  back-
  2527.               slash is considered to be part of the line.
  2528.  
  2529.        readonly [-pf] [name ...]
  2530.               The  given names are marked readonly and the values
  2531.               of these names may not  be  changed  by  subsequent
  2532.               assignment.   If  the  -f  option  is supplied, the
  2533.               functions corresponding to the names are so marked.
  2534.               If  no  arguments are given, or if the -p option is
  2535.               supplied, a list of all readonly names is  printed.
  2536.               An  argument of -- disables option checking for the
  2537.               rest of the arguments.
  2538.  
  2539.        return [n]
  2540.               Causes a function to exit  with  the  return  value
  2541.               specified by n.  If n is omitted, the return status
  2542.               is that of the last command executed in  the  func-
  2543.               tion  body.  If used outside a function, but during
  2544.               execution of a script by the .   (source)  command,
  2545.               it  causes  the shell to stop executing that script
  2546.               and return either n or the exit status of the  last
  2547.               command executed within the script as the exit sta-
  2548.               tus of the script.
  2549.  
  2550.        set [-aefhknotuvxldCH] [arg ...]
  2551.               -a      Automatically mark variables which are mod-
  2552.                       ified or created for export to the environ-
  2553.                       ment of subsequent commands.
  2554.               -e      Exit immediately if a  simple-command  (see
  2555.                       SHELL  GRAMMAR above) exits with a non-zero
  2556.                       status.  The shell does  not  exit  if  the
  2557.                       command  that  fails is part of an until or
  2558.                       while loop, part of an if  statement,  part
  2559.                       of  a  &&  or  || list, or if the command's
  2560.                       return value is being inverted via !.
  2561.               -f      Disable pathname expansion.
  2562.               -h      Locate and remember  function  commands  as
  2563.                       functions  are  defined.  Function commands
  2564.                       are normally looked up when the function is
  2565.                       executed.
  2566.               -k      All  keyword  arguments  are  placed in the
  2567.                       environment for a command, not  just  those
  2568.                       that precede the command name.
  2569.  
  2570.  
  2571.  
  2572. GNU                      1991 November 24                      39
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. BASH(1)                                                   BASH(1)
  2579.  
  2580.  
  2581.               -m      Monitor  mode.   Job  control  is  enabled.
  2582.                       This flag is on by default for  interactive
  2583.                       shells  on systems that support it (see JOB
  2584.                       CONTROL above).  Background  processes  run
  2585.                       in a separate process group and a line con-
  2586.                       taining their exit status is  printed  upon
  2587.                       their completion.
  2588.               -n      Read  commands  but  do  not  execute them.
  2589.                       This may be used to check  a  shell  script
  2590.                       for  syntax  errors.   This  is ignored for
  2591.                       interactive shells.
  2592.               -o option-name
  2593.                       The option-name can be one of  the  follow-
  2594.                       ing:
  2595.                       allexport
  2596.                               Same as -a.
  2597.                       braceexpand
  2598.                               The   shell  performs  curly  brace
  2599.                               expansion  (see   Brace   Expansion
  2600.                               above).  This is on by default.
  2601.                       emacs   Use  an  emacs-style  command  line
  2602.                               editing interface.
  2603.                       errexit Same as -e.
  2604.                       histexpand
  2605.                               Same as -H.
  2606.                       ignoreeof
  2607.                               The effect is as if the shell  com-
  2608.                               mand  `IGNOREEOF=10'  had been exe-
  2609.                               cuted (see Shell Variables  above).
  2610.                       monitor Same as -m.
  2611.                       noclobber
  2612.                               Same as -C.
  2613.                       noexec  Same as -n.
  2614.                       noglob  Same as -f.
  2615.                       nohash  Same as -d.
  2616.                       notify  The  effect is as if the shell com-
  2617.                               mand `notify='  had  been  executed
  2618.                               (see Shell Variables above).
  2619.                       nounset Same as -u.
  2620.                       verbose Same as -v.
  2621.                       vi      Use a vi-style command line editing
  2622.                               interface.
  2623.                       xtrace  Same as -x.
  2624.                       If no option-name is supplied,  the  values
  2625.                       of the current options are printed.
  2626.               -t      Exit  after  reading and executing one com-
  2627.                       mand.
  2628.               -u      Treat unset variables as an error when per-
  2629.                       forming  parameter expansion.  If expansion
  2630.                       is attempted  on  an  unset  variable,  the
  2631.                       shell  prints an error message, and, if not
  2632.                       interactive, exits with a non-zero  status.
  2633.               -v      Print shell input lines as they are read.
  2634.               -x      After  expanding  each simple-command, bash
  2635.  
  2636.  
  2637.  
  2638. GNU                      1991 November 24                      40
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. BASH(1)                                                   BASH(1)
  2645.  
  2646.  
  2647.                       displays the expanded value  of  PS4,  fol-
  2648.                       lowed by the command and its expanded argu-
  2649.                       ments.
  2650.               -l      Save and restore the binding of name  in  a
  2651.                       for name [in word] command (see SHELL GRAM-
  2652.                       MAR above).
  2653.               -d      Disable the hashing of  commands  that  are
  2654.                       looked  up  for  execution.  Normally, com-
  2655.                       mands are remembered in a hash  table,  and
  2656.                       once  found,  do  not  have to be looked up
  2657.                       again.
  2658.               -C      The effect  is  as  if  the  shell  command
  2659.                       `noclobber='  had  been executed (see Shell
  2660.                       Variables above).
  2661.               -H      Enable !  style history substitution.  This
  2662.                       flag is on by by default.
  2663.               --      If  no arguments follow this flag, then the
  2664.                       positional parameters  are  unset.   Other-
  2665.                       wise,  the positional parameters are set to
  2666.                       the args, even if some of them begin with a
  2667.                       -.
  2668.               -       Signal   the  end  of  options,  cause  all
  2669.                       remaining args to be assigned to the  posi-
  2670.                       tional  parameters.   The -x and -v options
  2671.                       are turned off.  If there are no args,  the
  2672.                       positional parameters remain unchanged.
  2673.  
  2674.               Using  +  rather  than  -  causes these flags to be
  2675.               turned off.  The flags can  also  be  specified  as
  2676.               options to an invocation of the shell.  The current
  2677.               set of flags may be found in $-.  After the  option
  2678.               arguments  are  processed,  the  remaining args are
  2679.               treated as values for the positional parameters and
  2680.               are  assigned, in order, to $1, $2, ...  $9.  If no
  2681.               options or args are supplied, all  shell  variables
  2682.               are  printed.   The  return  status  is always true
  2683.               unless an illegal option is encountered.
  2684.  
  2685.        shift [n]
  2686.               The positional parameters from n+1 ... are  renamed
  2687.               to  $1 ....  If n is not given, it is assumed to be
  2688.               1.  The exit status is 1 if n is greater  than  $#;
  2689.               otherwise 0.
  2690.  
  2691.        suspend [-f]
  2692.               Suspend  the  execution  of  this  shell  until  it
  2693.               receives a SIGCONT signal.  The -f option says  not
  2694.               to  complain if this is a login shell; just suspend
  2695.               anyway.
  2696.  
  2697.        test expr
  2698.        [ expr ]
  2699.               Return a status of 0 (true) or 1 (false)  depending
  2700.               on  the  evaluation  of  the conditional expression
  2701.  
  2702.  
  2703.  
  2704. GNU                      1991 November 24                      41
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710. BASH(1)                                                   BASH(1)
  2711.  
  2712.  
  2713.               expr.  Expressions may be unary or  binary.   Unary
  2714.               expressions are often used to examine the status of
  2715.               a file.  There are  string  operators  and  numeric
  2716.               comparison operators as well.
  2717.               -b file
  2718.                      True if file exists and is block special.
  2719.               -c file
  2720.                      True  if  file  exists and is character spe-
  2721.                      cial.
  2722.               -d file
  2723.                      True if file exists and is a directory.
  2724.               -e file
  2725.                      True if file exists
  2726.               -f file
  2727.                      True if file exists and is a regular file.
  2728.               -g file
  2729.                      True if file exists and is set-group-id.
  2730.               -k file
  2731.                      True if file has its ``sticky'' bit set.
  2732.               -L file
  2733.                      True if file exists and is a symbolic  link.
  2734.               -p file
  2735.                      True if file exists and is a named pipe.
  2736.               -r file
  2737.                      True if file exists and is readable.
  2738.               -s file
  2739.                      True  if  file exists and has a size greater
  2740.                      than zero.
  2741.               -S file
  2742.                      True if file exists and is a socket.
  2743.               -t [fd]
  2744.                      True if fd is opened on a terminal.   If  fd
  2745.                      is  omitted, it defaults to 1 (standard out-
  2746.                      put).
  2747.               -u file
  2748.                      True if file exists and its set-user-id  bit
  2749.                      is set.
  2750.               -w file
  2751.                      True if file exists and is writable.
  2752.               -x file
  2753.                      True if file exists and is executable.
  2754.               -O file
  2755.                      True  if  file  exists  and  is owned by the
  2756.                      effective user id.
  2757.               -G file
  2758.                      True if file exists  and  is  owned  by  the
  2759.                      effective group id.
  2760.               file1 -nt file2
  2761.                      True if file1 is newer (according to modifi-
  2762.                      cation date) than file2.
  2763.               file1 -ot file2
  2764.                      True if file1 is older than file2.
  2765.               file1 -ef file
  2766.                      True if file1 and file2 have the same device
  2767.  
  2768.  
  2769.  
  2770. GNU                      1991 November 24                      42
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776. BASH(1)                                                   BASH(1)
  2777.  
  2778.  
  2779.                      and inode numbers.
  2780.               -z string
  2781.                      True if the length of string is zero.
  2782.               -n string
  2783.               string True if the length of string is non-zero.
  2784.               string1 = string2
  2785.                      True if the strings are equal.
  2786.               string1 != string2
  2787.                      True if the strings are not equal.
  2788.               ! expr True if expr is false.
  2789.               expr1 -a expr2
  2790.                      True if both expr1 AND expr2 are true.
  2791.               expr1 -o expr2
  2792.                      True if either expr1 OR expr2 is true.
  2793.               arg1 OP arg2
  2794.                      OP  is  one  of  -eq, -ne, -lt, -le, -gt, or
  2795.                      -ge.   These  arithmetic  binary   operators
  2796.                      return  true  if  arg1  is equal, not-equal,
  2797.                      less-than, less-than-or-equal, greater-than,
  2798.                      or  greater-than-or-equal than arg2, respec-
  2799.                      tively.  Arg1 and arg2 may be positive inte-
  2800.                      gers,  negative  integers,  or  the  special
  2801.                      expression -l string, which evaluates to the
  2802.                      length of string.
  2803.  
  2804.        times  Print the accumulated user and system times for the
  2805.               shell and for processes run from the shell.
  2806.  
  2807.        trap [arg] [sigspec]
  2808.               The command arg is to be read and executed when the
  2809.               shell receives signal(s) sigspec.  If arg is absent
  2810.               or -, all specified signals are are reset to  their
  2811.               original  values (the values they had upon entrance
  2812.               to the shell).  If arg is the null string this sig-
  2813.               nal  is ignored by the shell and by the commands it
  2814.               invokes.  sigspec is either a signal name in  <sig-
  2815.               nal.h>, or a signal number.  If sigspec is EXIT (0)
  2816.               the command arg is executed on exit from the shell.
  2817.               With no arguments, trap prints the list of commands
  2818.               associated with each signal number.  The -l  option
  2819.               causes  the  shell  to print a list of signal names
  2820.               and their corresponding numbers.  An argument of --
  2821.               disables  option checking for the rest of the argu-
  2822.               ments.  Signals ignored upon  entry  to  the  shell
  2823.               cannot  be  trapped  or reset.  Trapped signals are
  2824.               reset to their original values in a  child  process
  2825.               when  it is created.  The return status is false if
  2826.               either then trap name or number is invalid;  other-
  2827.               wise trap returns true.
  2828.  
  2829.        type [-all] [-type | -path] [name ...]
  2830.               With  no  options,  indicate how each name would be
  2831.               interpreted if used as  a  command  name.   If  the
  2832.               -type  flag  is used, type prints a phrase which is
  2833.  
  2834.  
  2835.  
  2836. GNU                      1991 November 24                      43
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. BASH(1)                                                   BASH(1)
  2843.  
  2844.  
  2845.               one of alias, keyword, function, builtin,  or  file
  2846.               if name is an alias, shell reserved word, function,
  2847.               builtin, or disk file, respectively. If the name is
  2848.               not  found,  then  nothing  is printed, and an exit
  2849.               status of false is returned.  If the -path flag  is
  2850.               used, type either returns the name of the disk file
  2851.               that would be executed if name were specified as  a
  2852.               command  name, or nothing if -type would not return
  2853.               file.  If a command is  hashed,  -path  prints  the
  2854.               hashed value, not necessarily the file that appears
  2855.               first in PATH.  If the  -all  flag  is  used,  type
  2856.               prints all of the places that contain an executable
  2857.               named name.  This includes aliases  and  functions,
  2858.               if  and  only  if  the -path flag is not also used.
  2859.               The table of hashed commands is not consulted  when
  2860.               using  -all.   type accepts -a, -t, and -p in place
  2861.               of -all, -type, and -path, respectively.  An  argu-
  2862.               ment of -- disables option checking for the rest of
  2863.               the arguments.  type returns true  if  any  of  the
  2864.               arguments are found, false if none are found.
  2865.  
  2866.        ulimit [-SHacdfmstpn [limit]]
  2867.               Ulimit  provides  control over the resources avail-
  2868.               able to the shell and to processes started  by  it,
  2869.               on  systems  that allow such control.  The value of
  2870.               limit can be a number in the unit specified for the
  2871.               resource,  or  the  value  unlimited.   The H and S
  2872.               options specify that the hard or soft limit is  set
  2873.               for  the  given  resource.   A hard limit cannot be
  2874.               increased once it is  set;  a  soft  limit  may  be
  2875.               increased  up  to  the value of the hard limit.  If
  2876.               neither H nor S is specified, the  command  applies
  2877.               to  the  soft limit.  If limit is omitted, the cur-
  2878.               rent value of the soft limit  of  the  resource  is
  2879.               printed,  unless  the H option is given.  When more
  2880.               than one resource is specified, the limit name  and
  2881.               unit  is  printed  before the value.  Other options
  2882.               are interpreted as follows:
  2883.               -a     all current limits are reported
  2884.               -c     the maximum size of core files created
  2885.               -d     the maximum size of a process's data segment
  2886.               -f     the  maximum  size  of  files created by the
  2887.                      shell
  2888.               -m     the maximum resident set size
  2889.               -s     the maximum stack size
  2890.               -t     the maximum amount of cpu time in seconds
  2891.               -p     the pipe size in 512-byte blocks  (this  may
  2892.                      not be set)
  2893.               -n     the  maximum number of open file descriptors
  2894.                      (most systems do not allow this value to  be
  2895.                      set, only displayed)
  2896.  
  2897.               An  argument of -- disables option checking for the
  2898.               rest of the arguments.  If limit is  given,  it  is
  2899.  
  2900.  
  2901.  
  2902. GNU                      1991 November 24                      44
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908. BASH(1)                                                   BASH(1)
  2909.  
  2910.  
  2911.               the  new  value  of  the specified resource (the -a
  2912.               option is display only).  If no  option  is  given,
  2913.               then -f is assumed.  Values are in 1024-byte incre-
  2914.               ments, except for -t, which is in seconds, and  -p,
  2915.               which is in units of 512-byte blocks.
  2916.  
  2917.        umask [-S] [mode]
  2918.               The  user  file-creation  mask  is set to mode.  If
  2919.               mode begins with a digit, it is interpreted  as  an
  2920.               octal number; otherwise it is interpreted as a sym-
  2921.               bolic  mode  mask  similar  to  that  accepted   by
  2922.               chmod(1).   If mode is omitted, or if the -S option
  2923.               is supplied, the  current  value  of  the  mask  is
  2924.               printed.   The  -S  option  causes  the  mask to be
  2925.               printed in symbolic form; the default output is  an
  2926.               octal  number.   An  argument of -- disables option
  2927.               checking for the rest of the arguments.
  2928.  
  2929.        unalias [name ...]
  2930.               Remove names from the list of defined aliases.  The
  2931.               return  value  is true unless name is not a defined
  2932.               alias.
  2933.  
  2934.        unset [-fv] [name ...]
  2935.               For each name, remove  the  corresponding  variable
  2936.               or,  given the -f option, function.  An argument of
  2937.               -- disables option checking for  the  rest  of  the
  2938.               arguments.   Note  that  PATH, IFS, PPID, PS1, PS2,
  2939.               UID, and EUID cannot be unset.  If any  of  RANDOM,
  2940.               SECONDS,  or LINENO are unset, they lose their spe-
  2941.               cial properties,  even  if  they  are  subsequently
  2942.               reset.  The exit status is true unless the variable
  2943.               name does not exist or is non-unsettable.
  2944.  
  2945.        wait [n]
  2946.               Wait for the specified process and report its  ter-
  2947.               mination  status.   n  may be a process ID or a job
  2948.               specification; if a job spec  is  given,  all  pro-
  2949.               cesses in that job's pipeline are waited for.  If n
  2950.               is not given, all currently active child  processes
  2951.               are waited for, and the return code is zero.
  2952.  
  2953. INVOCATION
  2954.        A  login  shell  is  one whose first character of argument
  2955.        zero is a - , or one started with the -login flag.
  2956.  
  2957.        An interactive shell is one whose standard input and  out-
  2958.        put  are  both  connected  to  terminals (as determined by
  2959.        isatty(3)), or one started with the -i flag.  PS1  is  set
  2960.        and  $-  includes i if bash is interactive, allowing a way
  2961.        to test this state from a shell script or a startup  file.
  2962.  
  2963.        Login shells:
  2964.          On login:
  2965.  
  2966.  
  2967.  
  2968. GNU                      1991 November 24                      45
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974. BASH(1)                                                   BASH(1)
  2975.  
  2976.  
  2977.                if /etc/profile exists, source it.
  2978.  
  2979.                if ~/.bash_profile exists, source it,
  2980.                  else if ~/.bash_login exists, source it,
  2981.                    else if ~/.profile exists, source it.
  2982.  
  2983.          On logout:
  2984.                if ~/.bash_logout exists, source it.
  2985.  
  2986.        Non-login interactive shells:
  2987.          On startup:
  2988.                if ~/.bashrc exists, source it.
  2989.  
  2990.        Non-interactive shells:
  2991.          On startup:
  2992.                if the environment variable ENV is non-null, expand
  2993.             it and source the file it names.
  2994.  
  2995.  
  2996. SEE ALSO
  2997.        The Gnu Readline Library, Brian Fox
  2998.        The Gnu History Library, Brian Fox
  2999.        A System V Compatible Implementation of 4.2BSD Job
  3000.               Control, David Lennert
  3001.        How to wear weird pants for fun and profit, Brian Fox
  3002.        sh(1), ksh(1), csh(1)
  3003.  
  3004. FILES
  3005.        /bin/bash
  3006.               The bash executable
  3007.        /etc/profile
  3008.               The  systemwide  initialization  file, executed for
  3009.               login shells
  3010.        ~/.bash_profile
  3011.               The  personal  initialization  file,  executed  for
  3012.               login shells
  3013.        ~/.bashrc
  3014.               The individual per-interactive-shell startup file
  3015.        ~/.inputrc
  3016.               Individual Readline initialization file
  3017.  
  3018. AUTHORS
  3019.               Brian   Fox,   Free  Software  Foundation  (primary
  3020.               author)
  3021.               bfox@ai.MIT.Edu
  3022.  
  3023.               Chet Ramey, Case Western Reserve University
  3024.               chet@ins.CWRU.Edu
  3025.  
  3026. BUG REPORTS
  3027.        If you find a bug in bash,  you  should  report  it.   But
  3028.        first,  you  should make sure that it really is a bug, and
  3029.        that it appears in the latest version  of  bash  that  you
  3030.        have.
  3031.  
  3032.  
  3033.  
  3034. GNU                      1991 November 24                      46
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040. BASH(1)                                                   BASH(1)
  3041.  
  3042.  
  3043.        Once  you have determined that a bug actually exists, mail
  3044.        a bug report to bash-maintainers@ai.MIT.Edu.  If you  have
  3045.        a  fix, you are welcome to mail that as well!  Suggestions
  3046.        and `philosophical' bug reports  may  be  mailed  to  bug-
  3047.        bash@ai.MIT.Edu   or   posted   to  the  Usenet  newsgroup
  3048.        gnu.bash.bug.
  3049.  
  3050.        ALL bug reports should include:
  3051.  
  3052.        The version number of bash
  3053.        The hardware and operating system
  3054.        The compiler used to compile
  3055.        A description of the bug behaviour
  3056.        A short script or `recipe' which exercises the bug
  3057.  
  3058.        Comments and  bug  reports  concerning  this  manual  page
  3059.        should be directed to chet@ins.CWRU.Edu.
  3060.  
  3061. BUGS
  3062.        It's too big and too slow.
  3063.  
  3064.        There  are some subtle differences between bash and tradi-
  3065.        tional versions of sh, mostly because of the POSIX  speci-
  3066.        fication.
  3067.  
  3068.        Aliases are confusing in some uses.
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100. GNU                      1991 November 24                      47
  3101.  
  3102.  
  3103.