Skip to Content
Shell Scripting: Expert Recipes for Linux, Bash, and More
book

Shell Scripting: Expert Recipes for Linux, Bash, and More

by Steve Parker
August 2011
Beginner to intermediate
600 pages
14h 29m
English
Wrox
Content preview from Shell Scripting: Expert Recipes for Linux, Bash, and More

Using Variables

When assigning a variable, the name is not preceded by a dollar sign: variable=value. When referencing a variable, it is preceded by a dollar sign: echo $variable. Actually, the $variable syntax is a special case, but it is sufficient most of the time. Variables are properly referenced as ${variable}, as this allows the shell to differentiate between ${var}iable (the variable $var followed by the text “iable”) and ${variable} (the variable $variable). This can be useful when applying suffixes to variables, such as “${kb}Kb is $bytes bytes, or approx ${mb}Mb”:

cat mb2.sh
echo -n "Enter a size in Kb: "
read kb
bytes='expr $kb \* 1024'
mb='expr $kb / 1024'
echo "${kb}Kb is ${bytes} bytes, or approx ${mb}Mb."
$ ./mb2.sh
Enter a size in Kb: 12345
12345Kb is 12641280 bytes, or approx 12Mb.
$

If the curly brackets were not there, then ${kb}Kb would become $kbKb, and as a variable called kbKb has not been defined, it will evaluate to the empty string.

note.ai

In the context of a string, an undefined variable is interpreted as an empty string. If it were being treated as a number, it would be interpreted as zero.

With the curly brackets removed, the script runs like this:

cat mb1.sh
echo -n "Enter a size in Kb: "
read kb
bytes='expr $kb \* 1024'
mb='expr $kb / 1024'
echo "$kbKb is $bytes bytes, or approx $mbMb."
$ ./mb1.sh Enter a size in Kb: 12345   is 12641280 bytes, or ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Linux Command Line and Shell Scripting Techniques

Linux Command Line and Shell Scripting Techniques

Vedran Dakic, Jasmin Redzepagic
Linux Shell Scripting Cookbook - Third Edition

Linux Shell Scripting Cookbook - Third Edition

Clif Flynt, Sarath Lakshman, Shantanu Tushar

Publisher Resources

ISBN: 9781118166321Purchase bookDownloads