When the shell is running interactively, it changes its behavior in several ways.
- Startup files are read and executed as described in Bash Startup Files.
- Job Control (see Job Control) is enabled by default. When job control is in effect, Bash ignores the keyboard-generated job control signals
SIGTTIN
,SIGTTOU
, andSIGTSTP
. - Bash expands and displays
PS1
before reading the first line of a command, and expands and displaysPS2
before reading the second and subsequent lines of a multi-line command. Bash expands and displaysPS0
after it reads a command but before executing it. See Controlling the Prompt, for a complete list of prompt string escape sequences. - Bash executes the value of the
PROMPT_COMMAND
variable as a command before printing the primary prompt,$PS1
(see Bash Variables). - Readline (see Command Line Editing) is used to read commands from the user’s terminal.
- Bash inspects the value of the
ignoreeof
option toset -o
instead of exiting immediately when it receives anEOF
on its standard input when reading a command (see The Set Builtin). - Command history (see Bash History Facilities) and history expansion (see History Interaction) are enabled by default. Bash will save the command history to the file named by
$HISTFILE
when a shell with history enabled exits. - Alias expansion (see Aliases) is performed by default.
- In the absence of any traps, Bash ignores
SIGTERM
(see Signals). - In the absence of any traps,
SIGINT
is caught and handled (see Signals).SIGINT
will interrupt some shell builtins. - An interactive login shell sends a
SIGHUP
to all jobs on exit if thehuponexit
shell option has been enabled (see Signals). - The -n invocation option is ignored, and ‘set -n’ has no effect (see The Set Builtin).
- Bash will check for mail periodically, depending on the values of the
MAIL
,MAILPATH
, andMAILCHECK
shell variables (see Bash Variables). - Expansion errors due to references to unbound shell variables after ‘set -u’ has been enabled will not cause the shell to exit (see The Set Builtin).
- The shell will not exit on expansion errors caused by var being unset or null in
${var:?word}
expansions (see Shell Parameter Expansion). - Redirection errors encountered by shell builtins will not cause the shell to exit.
- When running in POSIX mode, a special builtin returning an error status will not cause the shell to exit (see Bash POSIX Mode).
- A failed
exec
will not cause the shell to exit (see Bourne Shell Builtins). - Parser syntax errors will not cause the shell to exit.
- Simple spelling correction for directory arguments to the
cd
builtin is enabled by default (see the description of thecdspell
option to theshopt
builtin in The Shopt Builtin). - The shell will check the value of the
TMOUT
variable and exit if a command is not read within the specified number of seconds after printing$PS1
(see Bash Variables).