= Shell Builtin Commands =

<<TableOfContents>>

----



== . ==

----



== : ==

Does nothing; arguments passed to it are expanded but immediately discarded.

----



== Alias ==

See [[Shell/Alias|here]].

----



== Bg ==

See [[Shell/JobControl|here]].

----



== Bind ==

----



== Break ==

See [[Shell/Looping|here]].

----



== Builtin ==

Execute a builtin command. This is only useful when reimplementing a builtin but still need to call the original builtin within the function.

----



== Caller ==

----



== Cd ==

Change the current working directory to a new path. Can be a relative or absolute path, as well as the special `.` and `..` directories.

Note the rules for [[Shell/Expansion#Tilde_Expansion|tilde expansion]] when using the `~` symbol here.

`cd -` changes the current working directory to the previous working directory.

There is also special behavior around specifying ''nothing''. `cd` is the same as `cd ~`.

----



== Command ==

Execute a command. This can be useful to call a command when there is a function with the same name. It can also be 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
}}}

----



== Continue ==

See [[Shell/Looping|here]].

----



== Dirs ==

----



== Disown ==

----



== Echo ==

----



== Enable ==

----



== Eval ==

Executes a command. This is useful when building commands through [[Shell/Expansion#Parameter_Expansion|parameter expansion]].

----



== Exec ==

Replaces the shell with the specified command. This is useful in scripts that dispatch to other commands, like `demenu(1)`.

----



== Exit ==

Causes a script or shell to exit immediately with a specified exit code. 

If used in an interactive shell, or when used in a script that is `source`d, causes the shell session to exit. That is likely not desireable; see [[#Return|return]] instead.

----



== Export ==

Marks one or more names as variables to be included in the environment of subsequently-called commands.

To set a variable and mark it simultaneously, try:

{{{
export varname="some value"
}}}

To instead export a function, use `export -f funcname`

----



== Fc ==

----



== Fg ==

See [[Shell/JobControl|here]].

----



== GetOpts ==

----



== Hash ==

----



== Help ==

Prints helpful information about a builtin command.

{{{
help help
}}}

----



== History ==

----



== Jobs ==

See [[Shell/JobControl|here]].

----



== Kill ==

----



== LogOut ==

Exit a login shell immediately.

----



== MapFile ==

----



== PopD ==

----



== PrintF ==

----



== PushD ==

----



== Pwd ==

Prints the current working directory.

----



== Read ==

----



== ReadArray ==

----



== ReadOnly ==

----



== Return ==

Only valid within a function definition. See [[Shell/Function#Error_and_Return_Codes|here]].

----



== Set ==

See [[Shell/ShellOptions|here]].

----



== Shift ==

Renames the [[Shell/Variables#Positional_Variables|special positional variables]].

If `shift` is called with no argument, `$2` is renamed to `$1`, `$3` is renamed to `$2`, and so on.

`shift N` causes `$N+1` to be renamed to `$N`, `$N+2` to be renamed to `$N+1`, and so on.

----



== Test ==

Aliased to `[`.

See [[Shell/Test|here]].

----



== Time ==

----



== Trap ==

See [[Shell/Trap|here]].

----



== TypeSet ==

----



== UnAlias ==

See [[Shell/Alias|here]].

----



== UnSet ==

See [[Shell/ShellOptions|here]].

----



== Wait ==



----
CategoryRicottone