Differences between revisions 8 and 20 (spanning 12 versions)
Revision 8 as of 2023-01-25 21:20:19
Size: 3377
Comment:
Revision 20 as of 2023-01-30 01:04:28
Size: 5275
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Builtin Commands = = Bash Builtin Commands =
Line 9: Line 9:
== . ==

Alias for `source`.

----


Line 27: Line 35:
See [[Bash/JobControl|here]].
Line 38: Line 48:

See [[Bash/Looping|here]].
Line 112: Line 124:
See [[Bash/Looping|here]].

----



== Coproc ==

See [[Bash/JobControl|here]].
Line 118: Line 140:
Set a variable, optionally with a value.

{{{
declare a=1 b=2 c=3
}}}

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 (`+`).
Line 148: Line 216:
Executes a command. This is useful when building commands through [[Bash/Expansion#Parameter_Expansion|parameter expansion]].
Line 154: Line 224:
Replaces the shell with the specified command. This is useful in scripts that dispatch to other commands, like `demenu(1)`.
Line 160: Line 232:
If used in an interactive shell, or when used in a script that is `source`d, causes the shell session to 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.
Line 190: Line 264:
See [[Bash/JobControl|here]].
Line 226: Line 302:
See [[Bash/JobControl|here]].
Line 238: Line 316:
See [[Bash/Arithmetic|here]].
Line 252: Line 332:
Exit a login shell immediately.
Line 324: Line 406:
Renames the [[Bash/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.
Line 338: Line 426:
Aliased to `.`.
Line 362: Line 448:
See [[Bash/Trap|here]].
Line 374: Line 462:
See [[Bash/Alias|here]].
Line 380: Line 470:
See [[Bash/ShellOptions|here]].

Bash Builtin Commands


.

Alias for source.


:

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


Alias

See here.


Bg

See here.


Bind


Break

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


CompGen

See here.


Complete

See here.


CompOpt

See here.


Continue

See here.


Coproc

See here.


Declare

Set a variable, optionally with a value.

declare a=1 b=2 c=3

When used within a function definition, the variable is set to 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 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 (+).


Dirs


Disown


Echo


Enable


Eval

Executes a command. This is useful when building commands through 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 sourced, causes the shell session to exit. That is likely not desireable; see 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 here.


GetOpts


Hash


Help

Prints helpful information about a builtin command.

help help


History


Jobs

See here.


Kill


Let

See here.


Local

Only valid within a function definition. See here.


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


Set

See here.


Shift

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


ShOpt

See here.


Source


Test

Aliased to [.

See here.


Time


Trap

See here.


TypeSet


UnAlias

See here.


UnSet

See here.


Wait


CategoryRicottone

Bash/BuiltinCommands (last edited 2023-01-30 01:04:28 by DominicRicottone)