bash - Launch the Bourne-Again SHell, an sh-compatible shell that incorporates useful features from the Korn and C shells (ksh and csh).

      bash [options]

   -c string  Commands are read from string.
              If there are arguments after the string, they are
              assigned to the positional parameters, starting with $0.

   -D         A list of all double-quoted strings preceded by $ is printed
              to 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.

   [-+]O [shopt_option]
              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 can be reused as  input.

   -i         Interactive shell.

   -l         Make bash act as if it had been invoked as a login shell, it
              first reads and executes commands from the file /etc/profile,
              if that file exists.  After reading that file, it looks for
              ~/.bash_profile, ~/.bash_login, and ~/.profile, in  that order,
              and reads and executes commands from the first one that exists
              and is readable.  The --noprofile option can be used when the
              shell is started to inhibit this behavior.

   -r         RESTRICTED SHELL prevent changing directory, Shell, Path etc.

   -s         If the -s 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.

   -v         Verbose output.

   --         A -- signals the end of options and disables further option
              processing. Any arguments after the -- are treated as file-
              names and arguments. An argument of - is equivalent to --.

   Bash also interprets a number of multi-character options.
   These options must appear on the command line before the single-character
   options to be recognized.

              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) and shell
              function tracing (see the description of the -o functrace option
              to the set builtin below).
              Equivalent  to -D, but the output is in the GNU gettext po (por-
              table object) file format.
              Equivalent to -D.
       --help Display a usage message on standard  output  and  exit  success-
       --init-file file
       --rcfile file
              Execute commands from file instead of the standard personal ini-
              tialization file ~/.bashrc if  the  shell  is  interactive  (see
              INVOCATION below).

              Equivalent to -l.

              Do  not  use the GNU readline library to read command lines when
              the shell is interactive.

              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

       --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.

              Change the behavior of bash where the default operation  differs
              from the POSIX standard to match the standard (posix mode).

              The shell becomes restricted (see RESTRICTED SHELL below).

              Equivalent to  -v.

              Show version information for this instance of bash on the standard
              output and exit successfully.


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. If 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. An attempt is first made to open the file in the current directory, and, if no file is found, then the shell searches the directories in PATH for the script.

Special Parameters

The shell treats several parameters specially. These parameters can only be referenced; assignment to them is not allowed.

* Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, it expands to a sin- gle word with the value of each parameter separated by the first character of the IFS special variable. That is, "$*" is equivalent to "$1c$2c...", where c is the first character of the value of the IFS variable. If IFS is unset, the parameters are separated by spaces. If IFS is null, the parameters are joined without intervening separators.

@ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ... If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined with the beginning part of the original word, and the expansion of the last parameter is joined with the last part of the original word. When there are no positional parameters, "$@" and $@ expand to nothing (i.e., they are removed).

# Expands to the number of positional parameters in decimal. ? Expands to the status of the most recently executed foreground pipeline. - Expands to the current option flags as specified upon invocation, by the set builtin command, or those set by the shell itself (such as the -i option).

$ Expands to the process ID of the shell. In a () subshell, it expands to the process ID of the current shell, not the sub-shell.

! Expands to the process ID of the most recently executed background (asynchronous) command.

0 Expands to the name of the shell or shell script. This is set at shell initialization. If bash is invoked with a file of commands, $0 is set to the name of that file. If bash is started with the -c option, then $0 is set to the first argument after the string to be executed, if one is present. Otherwise, it is set to the file name used to invoke bash, as given by argument zero.

_ At shell startup, set to the absolute pathname used to invoke the shell or shell script being executed as passed in the envi-ronment or argument list. Subsequently, expands to the last argument to the previous command, after expansion. Also set to the full pathname used to invoke each command executed and placed in the environment exported to that command. When checking mail, this parameter holds the name of the mail file currently being checked.

To Exit bash type exit

Default shell

Your default shell can be accessed from System Preferences > Accounts, Right click (or control-click) on an account and choose Advanced Options.

You can also set a default shell for the terminal:
Open the Terminal app (Applications > Utilities > Terminal) then open Terminal Preferences

Whatever the default, you can always switch shells on the fly by just typing the name of new shell - bash, csh, tcsh or zsh.

Related macOS commands

builtin - Execute the specified shell builtin.

“What distinguishes the majority of men from the few is their inability to act according to their beliefs” ~ Henry Miller

Copyright © 1999-2023
Some rights reserved