Variables

This section describes the following:

  • Variable assignment

  • Variable substitution

  • Built-in shell variables

  • Other shell variables

  • Arrays

  • Special prompt strings

Variable Assignment

Variable names consist of any number of letters, digits, or underscores. Uppercase and lowercase letters are distinct, and names may not start with a digit. Variables are assigned values using the = operator. There may not be any whitespace between the variable name and the value. You can make multiple assignments on the same line by separating each one with whitespace:

firstname=Arnold lastname=Robbins numkids=4

By convention, names for variables used or set by the shell usually have all uppercase letters; however, you can use uppercase names in your scripts if you use a name that isn't special to the shell.

By default, the shell treats variable values as strings, even if the value of the string is all digits. However, when a value is assigned to an integer variable (created via declare -i), Bash evaluates the righthand side of the assignment as an expression (see the later section Arithmetic Expressions). For example:

$ i=5+3 ; echo $i
5+3
$ declare -i jj ; jj=5+3 ;  echo $jj
8

Beginning with Bash Version 3.1, the += operator allows you to add or append the righthand side of the assignment to an existing value. Integer variables treat the righthand side as an expression, which is evaluated and added to the value. Arrays add the new elements to the array (see the later section Arrays). For example:

$ name=Arnold ...

Get bash Quick Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.