= Bash Builtin Commands = The set of portable commands. <> ---- == Commands == ||'''Command''' ||'''Description'''||'''Example'''|| ||`.` ||Alias for `source`|| || ||`:` ||No-op || || ||`alias` ||Creates an [[Bash/Alias|alias]]|| || ||`bind` || || || ||`builtin` ||Executes a builtin command|| || ||`caller` || || || ||`cd` ||Changes the current working directory|| || ||`command` ||Executes a command|| || ||`declare` ||Set a variable, optionally with a value|| || ||`dirs` || || || ||`disown` || || || ||`echo` || || || ||`enable` || || || ||`eval` ||Executes a command|| || ||`exec` ||Replaces the shell with a command|| || ||`exit` ||Causes a script or shell to exit immediately|| || ||`export` ||Marks one or more names as variables to be included in the environment of subsequently-called commands||`export varname="some value"`|| ||`fc` || || || ||`getopts` || || || ||`hash` || || || ||`help` ||Prints helpful information about a builtin command|| || ||`history` || || || ||`kill` || || || ||`let` || || || ||`local` ||Only valid within a function definition; see [[Bash/Function#Local_Scope|here]]|| || ||`logout` ||Exits a login shell immediately|| || ||`mapfile` || || || ||`popd` || || || ||`printf` || || || ||`pushd` || || || ||`pwd` ||Prints the current working directory|| || ||`read` || || || ||`readarray` || || || ||`readonly` || || || ||`set` ||Sets a [[Bash/ShellOptions|shell option]]|| || ||`shift` ||Renames the [[Bash/Variables#Positional_Variables|positional variables]]|| || ||`shopt` ||Sets a [[Bash/ShellOptions|shell option]]|| || ||`source` || || || ||`test` ||Executes a [[Bash/Test|test]]|| || ||`time` || || || ||`trap` ||Creates a trap || || ||`typeset` || || || ||`unalias` ||Removes an [[Bash/Alias|alias]]|| || ||`unset` ||Unsets a [[Bash/ShellOptions|shell option]]|| || ||`wait` || || || === Builtin === `builtin` can be useful to call a builtin command when there is a custom command with the same name. === Cd === Calling `cd` without an argument is the same as `cd ~`. `cd -` changes the current working directory to the previous working directory. === Command === `command` can be useful to call a command when there is a function with the same name. `command` is also commonly used to determine if a command is locally available. {{{ if ! command -v mypy >/dev/null 2>&1; then echo "cannot locate mypy; is it installed?" exit fi }}} === Declare === When used within a function definition, the variable is set to [[Bash/Function#Local_Scope|local scope]]. To create a variable that is marked for export, use: {{{ declare -x myvar }}} To create a variable that is marked for tracing, use: {{{ declare -t myvar }}} To create a read-only constant, use: {{{ declare -r myconst }}} To create an integer variable, use: {{{ declare -i myinteger }}} To create an [[Bash/Array|array]], use: {{{ declare -a myarray }}} To create an associative array, use: {{{ declare -A myarray }}} With some exceptions, these options can be combined. Additionally, options can be explicitly disabled by substituting the dash (`-`) with a plus sign (`+`). ---- == Reserved Keywords == Some parts of the language are technically implemented as a command. See [[Bash/Looping|here]] for `break` and `continue`. See [[Bash/Function#Error_and_Return_Codes|here]] for `return`. See [[Bash/JobControl|here]] for `bg`, `coproc`, `fg`, and `jobs`. Lastly, note that `compgen`, `complete`, and `compopt` all have to do with Bash completion. ---- CategoryRicottone