Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2023-01-27 19:40:35
Size: 171
Comment:
Revision 4 as of 2023-01-29 21:43:22
Size: 1936
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

For a list of special variables are used internally by the `bash(1)` shell, see [[Bash/ShellVariables|here]].
Line 11: Line 13:
Variables can be explicitly declared with the `declare` [[Bash/BuiltinCommands#Declare|builtin]].

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

Variables can also be created implicitly.

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

For declaring array variables, see [[Bash/Array|here]].
Line 16: Line 34:

Variables are accessed by their name. A dollar sign (`$`) must be prefixed to the name.

{{{
a=foo
b=$a # 'foo'
}}}

To delimit a variable name from string literals, use braces. For example:

{{{
a=foo
b=${a}bar # 'foobar'
}}}

If a variable's value includes a character that the shell will interpret specially, such as a space (which would cause the shell to interpret the variable as two tokens), [[Bash/Quoting|quote]] the variable.

{{{
a=foo
b="$a bar" # 'foo bar'
}}}
Line 23: Line 62:
The following variables are set automatically by `bash(1)`.

||'''Variable'''||'''Value''' ||
||`$#` ||number of arguments ||
||`$@` ||all arguments as an [[Bash/Array|array]] ||
||`$*` ||all arguments as a string ||
||`$?` ||the exit code ||
||`$$` ||the PID of the shell ||
||`$!` ||the PID of the most recent background job||



=== Positional Variables ===

The name of a command is stored in `$0`.

The first argument to the command is stored in `$1`. And so on until the 9th argument, `$9`.

From the tenth argument, while arguments are stored in an indexed variable, they must be accessed differently. `$10` is interpretted like `${1}0`. To actually access the 10th argument, try `${10}`.

Bash Variables

For a list of special variables are used internally by the bash(1) shell, see here.


Declaring

Variables can be explicitly declared with the declare builtin.

declare a=1 b=2 c=3

Variables can also be created implicitly.

a=1
b=2
c=3

For declaring array variables, see here.


Usage

Variables are accessed by their name. A dollar sign ($) must be prefixed to the name.

a=foo
b=$a       # 'foo'

To delimit a variable name from string literals, use braces. For example:

a=foo
b=${a}bar  # 'foobar'

If a variable's value includes a character that the shell will interpret specially, such as a space (which would cause the shell to interpret the variable as two tokens), quote the variable.

a=foo
b="$a bar" # 'foo bar'


Special Variables

The following variables are set automatically by bash(1).

Variable

Value

$#

number of arguments

$@

all arguments as an array

$*

all arguments as a string

$?

the exit code

$$

the PID of the shell

$!

the PID of the most recent background job

Positional Variables

The name of a command is stored in $0.

The first argument to the command is stored in $1. And so on until the 9th argument, $9.

From the tenth argument, while arguments are stored in an indexed variable, they must be accessed differently. $10 is interpretted like ${1}0. To actually access the 10th argument, try ${10}.


CategoryRicottone

Bash/Variables (last edited 2023-01-30 01:51:15 by DominicRicottone)