Introduction to Unix

../_images/ksuPoly1.jpg ../_images/UNIX_blocks1.jpeg

5.3. Accessing VariablesΒΆ

Linux for Programmers and Users, Section 6.3.2

Syntax Action
$name Returns the value of name.
${name} Use this form when the variable name is followed by other characters, for example: filename=${file}.txt
${name-word} Returns name if set, and word otherwise.
${name=word} Assigns word to name if name is not already set. Returns name.
${#name} Returns the length of the value of name.
${name#pat}
${name##pat}
Removes the leading pat from name. The first form removes the smallest matching pattern, the second form removes the largest matching pattern.
${name%pat}
${name%%pat}
Removes the trailing pat from name. The first form removes the smallest matching pattern, the second form removes the largest matching pattern.

Some Examples:

$ file=foo
$ echo ${file}.txt
foo.txt
$ b=bar
$ echo ${file-$b}     --- already set
foo
$ echo ${bob-$b}      --- not set
bar
$ echo ${bob=wildcat} --- not set, assignment made
wildcat
$ echo ${bob=jayhawk} --- already set, assignment not made
wildcat
$ echo ${#bob}        --- string length
7
$ echo ${bob#wild}    --- remove first part
cat
$ echo ${bob%cat}     --- remove last part
wild