- publishing free software manuals
GNU Bash Reference Manual
by Chet Ramey and Brian Fox
Paperback (6"x9"), 180 pages
ISBN 0954161777
RRP £19.95 ($29.95)

"An essential resource .... the most detailed coverage available for all aspects of Bash" --- Linux User and Developer Magazine (Issue 37, Mar 2004) Get a printed copy>>>

6.1 Invoking Bash

bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o option]
  [-O shopt_option] [argument ...]
bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o option]
  [-O shopt_option] -c string [argument ...]
bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o option]
  [-O shopt_option] [argument ...]

In addition to the single-character shell command-line options (see section 4.3 The Set Builtin), there are several multi-character options that you can use. These options must appear on the command line before the single-character options to be recognized.

--debugger
Arrange for the debugger profile to be executed before the shell starts. Turns on extended debugging mode (see section 4.2 Bash Builtin Commands for a description of the extdebug option to the shopt builtin) and shell function tracing (see section 4.3 The Set Builtin for a description of the -o functrace option).
--dump-po-strings
A list of all double-quoted strings preceded by ‘$’ is printed on the standard output in the GNU gettext PO (portable object) file format. Equivalent to -D except for the output format.
--dump-strings
Equivalent to -D.
--help
Display a usage message on standard output and exit successfully.
--init-file filename
--rcfile filename
Execute commands from filename (instead of ‘~/.bashrc’) in an interactive shell.
--login
Equivalent to -l.
--noediting
Do not use the GNU Readline library (see section 8 Command Line Editing) to read command lines when the shell is interactive.
--noprofile
Don't load the system-wide startup file ‘/etc/profile’ or any of the personal initialization files ‘~/.bash_profile’, ‘~/.bash_login’, or ‘~/.profile’ when Bash is invoked as a login shell.
--norc
Don't read the ‘~/.bashrc’ initialization file in an interactive shell. This is on by default if the shell is invoked as sh.
--posix
Change the behavior of Bash where the default operation differs from the POSIX standard to match the standard. This is intended to make Bash behave as a strict superset of that standard. See section 6.11 Bash POSIX Mode, for a description of the Bash POSIX mode.
--restricted
Make the shell a restricted shell (see section 6.10 The Restricted Shell).
--verbose
Equivalent to -v. Print shell input lines as they're read.
--version
Show version information for this instance of Bash on the standard output and exit successfully.

There are several single-character options that may be supplied at invocation which are not available with the set builtin.

-c string
Read and execute commands from string after processing the options, then exit. Any remaining arguments are assigned to the positional parameters, starting with $0.
-i
Force the shell to run interactively. Interactive shells are described in section 6.3 Interactive Shells.
-l
Make this shell act as if it had been directly invoked by login. When the shell is interactive, this is equivalent to starting a login shell with ‘exec -l bash’. When the shell is not interactive, the login shell startup files will be executed. ‘exec bash -l’ or ‘exec bash --login’ will replace the current shell with a Bash login shell. See section 6.2 Bash Startup Files, for a description of the special behavior of a login shell.
-r
Make the shell a restricted shell (see section 6.10 The Restricted Shell).
-s
If this option is present, or if no arguments remain after option processing, then commands are read from the standard input. This option allows the positional parameters to be set when invoking an interactive shell.
-D
A list of all double-quoted strings preceded by ‘$’ is printed on the standard output. These are the strings that are subject to language translation when the current locale is not C or POSIX (see section 3.1.2.5 Locale-Specific Translation). This implies the -n option; no commands will be executed.
[-+]O [shopt_option]
shopt_option is one of the shell options accepted by the shopt builtin (see section 4 Shell Builtin Commands). If shopt_option is present, -O sets the value of that option; +O unsets it. If shopt_option is not supplied, the names and values of the shell options accepted by shopt are printed on the standard output. If the invocation option is +O, the output is displayed in a format that may be reused as input.
--
A -- signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments.

A login shell is one whose first character of argument zero is ‘-’, or one invoked with the --login option.

An interactive shell is one started without non-option arguments, unless -s is specified, without specifying the -c option, and whose input and output are both connected to terminals (as determined by isatty(3)), or one started with the -i option. See section 6.3 Interactive Shells, for more information.

If arguments remain after option processing, and neither the -c nor the -s option has been supplied, the first argument is assumed to be the name of a file containing shell commands (see section 3.8 Shell Scripts). When Bash is invoked in this fashion, $0 is set to the name of the file, and the positional parameters are set to the remaining arguments. Bash reads and executes commands from this file, then exits. Bash's exit status is the exit status of the last command executed in the script. If no commands are executed, the exit status is 0.

ISBN 0954161777GNU Bash Reference ManualSee the print edition