Chapter 4. Interacting with the Environment

No shell script is an island. Your scripts run within the environment provided by your computer and operating system. For shell scripts, most systems provide a Unix-like environment, which helps a lot because your scripts can query the environment in a consistent manner across systems. This includes Mac OS X, based on Berkeley Unix, and Linux, a Unix work-alike. Even Windows and QNX provide Unix-like environments for shell scripts.

A Unix-like environment provides special settings called environment variables, which hold important values for determining where commands are located, as well as the user's home directory.

This chapter covers:

  • Examining the settings in your system's environment, getting and setting environment variables

  • Customizing your account, especially how shells start up

  • Handling command-line arguments and using these arguments to change the way your scripts behave

  • Making scripts executable so your scripts appear to the end user as operating system commands, no different from commands such as ls and cp

Examining Environment Variables

Environment variables are a type of shell variables.

For the most part, environment variables are the same as other shell variables. There are four main differences, however:

  • Environment variables are set by the environment, the operating system, during the startup of your shell. (This process is not magic, as you will see in this chapter.)

  • Shell variables are local to a particular instance of the shell—for ...

Get Beginning Shell Scripting 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.