GNU Bourne-Again SHell

1. Description

Bash is a POSIX shell (sh(1) compatible) command interpreter. Many useful features have been added with inspiration drawn from the Korn & C shells. New and unique extensions are occasionally added to the shell. There is also support for custom run-time extensions via the enable builtin command. Bash may be compiled to be POSIX compliant by default as specified by the Shell and Utilities portion of the POSIX specification (IEEE Standard 1003.1).

2. Invocation

2.1. Modes

GNU bash may be started in any combination of various invocation modes. These modes control:

  • The source from which to interpenetrate commands:
    • user's terminal
    • shell script
    • command string
    • file contents
    • standard input
  • POSIX compatibality
  • Login shell mode
  • Security settings
  • Restricted Shell access

/InteractiveShell

2.1.1. Interactive Shell

2.1.2. Login Shell

  • Login Shell

2.1.3. POSIX Mode

2.1.4. Command String

2.1.5. Interactive Shell

2.1.5.1. Command Line

2.1.5.2. Prompting

2.1.5.3. Completion

2.1.5.4. History

2.1.5.5. Job Control

2.1.6. Shell Script

2.1.7. Command File

2.1.8. Command Stream

2.1.9. Restricted Shell



CategoryBashRef

2.2. Options

2.2.1. -c CommandString

-c [options] -- CommandString [ARG0 [ARG...]]

  • commands are read from the first non-option argument (required)
  • $0 is set as the second non-option argument defaulting to "bash"

  • all remaining non-option arguments are assigned to the positional parameters starting at $1

  • [[ $- =~ c ]] will return true

2.2.2. -i

-i [options]

  • force the shell into Interactive Mode

  • [[ $- =~ i ]] will return true

  • [[ ${PS1+set} = 'set' ]] will return true

Include: Nothing found for "^----$"!

2.2.3. -l

pragma section-numbers 1

2.2.4. Invocation Option l


-l | --login

  • act as a Login Shell

  • --login must appear on the command line before the single-character options to be recognized.

2.2.5. -r

-r

2.2.6. -s

-s [options] -- [ARG0 [ARG...]]

2.2.7. -D

-D | --dump-strings

  • 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. This implies the -n option; no commands will be executed.

2.2.8. -O ShoptOption | +O ShoptOption

-O ShoptOption | +O ShoptOption

  • shopt_option is one of the shell options accepted by the shopt builtin (see SHELL BUILTIN COMMANDS below).
  • 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.

2.2.9. --debugger

--debugger

  • Arrange for the debugger profile to be executed before the shell starts.
  • Turns on extended debugging mode (see the description of the extdebug option to the shopt builtin below).
  • These options must appear on the command line before the single-character options to be recognized.

2.2.10. --dump-po-strings

--dump-po-strings

  • Equivalent to -D, but the output is in the GNU gettext po (portable object) file format.
  • These options must appear on the command line before the single-character options to be recognized.

2.2.11. --dump-strings

-D | --dump-strings

  • 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. This implies the -n option; no commands will be executed.

2.2.12. --help

--help

  • Display a usage message on standard output and exit successfully.
  • These options must appear on the command line before the single-character options to be recognized.

Include: Nothing found for "^----$"!

2.2.13. --init-file

2.2.14. Invocation Option --rcfile


--rcfile FILE | --init-file FILE

  • Execute commands from file instead of the standard personal initialization file ~/.bashrc if the shell is interactive (see INVOCATION below).
  • An argument of --init-file is equivalent to --rcfile.
  • These options must appear on the command line before the single-character options to be recognized.

2.2.15. --rcfile

--rcfile FILE | --init-file FILE

  • Execute commands from file instead of the standard personal initialization file ~/.bashrc if the shell is interactive (see INVOCATION below).
  • An argument of --init-file is equivalent to --rcfile.
  • These options must appear on the command line before the single-character options to be recognized.

2.2.16. --login

-l | --login

  • act as a Login Shell

  • --login must appear on the command line before the single-character options to be recognized.

2.2.17. --noediting

--noediting

  • Do not use the GNU readline library to read command lines when the shell is interactive.
  • These options must appear on the command line before the single-character options to be recognized.

2.2.18. --noprofile

--noprofile

  • Do not read either the system-wide startup file /etc/profile or any of the personal initialization files ~/.bash_profile, ~/.bash_login, or ~/.profile.
  • By default, bash reads these files when it is invoked as a login shell (see INVOCATION below).
  • These options must appear on the command line before the single-character options to be recognized.

2.2.19. --norc

--norc

  • Do not read and execute the personal initialization file ~/.bashrc if the shell is interactive.
  • This option is on by default if the shell is invoked as sh.
  • These options must appear on the command line before the single-character options to be recognized.

2.2.20. --posix

--posix

  • Change the behavior of bash where the default operation differs from the POSIX standard to match the standard (posix mode).
  • See SEE ALSO below for a reference to a document that details how posix mode affects bash's behavior.
  • These options must appear on the command line before the single-character options to be recognized.

2.2.21. --restricted

2.3. Environment

2.4. Files

2.4.1. Bash Binary

2.4.2. /etc/profile

2.4.3. ~/.bash_profile

2.4.4. ~/.bashrc

2.4.5. ~/.profile

2.4.6. ~/.bash_logout

2.4.7. ~/.inputrc

3. Statements

Also called "Compound Commands".

3.1. while

3.2. for in

3.3. for

3.4. if

3.5. case

3.6. until

3.7. group

3.8. subshell

3.9. Conditional

3.10. Arithmetic

3.11. select

3.12. coprocess

3.13. Function Definition

4. Builtin Commands

4.1. : (colon)

5. Syntax

5.1. Alias

5.2. Expansion

5.3. Redirection

5.4. Comment

5.5. List

5.6. Pipeline

5.7. Simple Command

5.8. Metacharacter

5.9. Reserved Words

5.10. Compound Command

5.11. Coprocess

5.12. Function Definition

5.13. Functions

5.14. Arithmetic Evaluation

5.15. Conditional Expressions

6. Execution

6.1. Environment

6.2. Parameters

6.3. Working Directory

6.4. Functions

6.5. Open Files

6.6. Traps

6.7. umask

6.8. Options

6.9. Alias

6.10. OS process context

6.11. Exit Status

7. Subshell


bash/description

8. Readline


CategoryBashRef

bash (last edited 2017-10-20 15:44:44 by Robert Robertson)