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

Variable Scope

Functions traditionally return only a single value. The shell is not quite as straightforward as that, so some side effects can occasionally be surprising. There is only one shell executing the script so any variables within a function continue to exist outside it. This script has three variables, GLOBALVAR, myvar, and uniquevar. In some languages, GLOBALVAR would be treated as global in similar circumstances because it has been defined outside of the function itself. In some languages, myvar within the function would be local to the function and separate from the myvar variable outside the function. In many languages, uniquevar would fail when it is first called because it has never been defined before that point. In the shell, this is okay. uniquevar would still not be seen outside of the function, because it has never existed beyond the function.

These occasionally conflicting but widely understood standards are common across many programming languages. The shell is a little different because it is not a strict programming language. Try to predict the outcome of the following script before running it, and be prepared to explain why the results will be as you predict. You can use Table 8-1 for this.

Table 8-1: Predicted final values of GLOBALVAR, myvar, and uniquevar

Variable Initial Value Predicted Final Value, with Reasons
$GLOBALVAR 1
$myvar 500
$uniquevar undefined
cat scope.sh #!/bin/sh the_function() {   echo "  This ...
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