Bash Invocation
Invocation Modes
Mode | Bash Invocation | POSIX Shell Invocation |
---|---|---|
Login Shell | -bash bash -l [ Options ] bash --login [ Options ] | -sh bash --posix --login |
Command String | bash -c CMD_STRING SHELL ARGS | sh -c |
Interactive Shell | bash [options] | sh |
Script | #!/bin/bash [single word options] | #!/bin/sh [] |
Command File | bash [options] file [args] | sh [options] file [args] |
Command Stream | bash [options] -s [ SHELL [args…]] | sh [options] file [args] |
Restricted Shell | bash -p rbash [options] | sh -p |
Invocation Options
Login Options
-l --login | Act as a login shell. |
-O login_shell BASHOPTS == ogin_shell | This option is ignored by bash. Use --login . |
--noprofile | Do not read the system-wide startup file /etc/profile Do not read any personal initialization files .bash_profile , .bash_login , or .profile |
Test2
- a allexport -B braceexpand -b notify -C noclobber -c -e errexit -E errtrace -D -f noglob -h hashall -H histexpand -k keyword -m monitor -n noexec -o OPTION -p privileged -P physical -t onecmd -T functrace -u nounset -v verbose -x xtrace
autocd cdable_vars cdspell checkhash checkjobs checkwinsize cmdhist compat31 compat32 compat40 compat41 compat42 compat43 complete_fullquote direxpand dirspell dotglob execfail expand_aliases extdebug extglob extquote failglob force_fignore globasciiranges globstar gnu_errfmt histappend histreedit histverify hostcomplete huponexit inherit_errexit interactive_comments lastpipe lithist
mailwarn no_empty_cmd_completion nocaseglob nocasematch nullglob progcomp promptvars restricted_shell shift_verbose sourcepath xpg_echo
Test3
Invocation Environment
Login Shell
A login shell is started either by:
A login shell need not be interactive. A login shell will:
- Read & execute commands from
profile
if it is readable (need not be executable) - Read & execute the first user profile found (searched in the order):
- Shell Option
--noprofile
may be used to suppress this behavior - exit via:
- If the
huponexit
Shell Option was set inBASHOPTS
, then bash sendsSIGHUP
to all jobs in an interactive shell. - Read & execute commands from the readable file
.bash_logout
POSIX Login Shell
RESTRICTED SHELL
A restricted shell is used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the following are disallowed or not performed:
- changing directories with cd
- setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
- specifying command names containing /
- specifying a filename containing a / as an argument to the . builtin command
- specifying a filename containing a slash as an argument to the -p option to the hash builtin command
- importing function definitions from the shell environment at startup
- parsing the value of SHELLOPTS from the shell environment at startup
- redirecting output using the >, >|, <>, >&, &>, and » redirection operators
- using the exec builtin command to replace the shell with another command
- adding or deleting builtin commands with the -f and -d options to the enable builtin command
- using the enable builtin command to enable disabled shell builtins
- specifying the -p option to the command builtin command
- turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see COMMAND EXECUTION above), rbash turns off any restrictions in the shell spawned to execute the script.
-r If the -r option is present, the shell becomes restricted
(see RESTRICTED SHELL below). --restricted The shell becomes restricted (see RESTRICTED SHELL below).
enable [-a] [-dnps] [-f filename] [name …] readonly restricted_shell
The shell sets this option if it is started in restricted mode (see RESTRICTED SHELL below). The value may not be changed. This is not reset when the startup files are executed, allowing the startup files to discover whether or not a shell is restricted.