Linux / UNIX Bash Scripting - Shell Scripting
Course Description
This course is to help users of Linux / Unix systems to automate the repetitive tasks they encounter during their daily work using "Shell Scripts" or "Bash Scripts". It is a hands-on course with lots of examples and the goal is to encourage and empower participants to "work smarter not harder". One of the best techniques to employ in this effort is to write a script to carry out repetitive tasks.
Duration: 2 days
Prerequisites
Participants should have attended the Linux / Unix User Essentials course or have equivalent skills. The course is aimed at Linux / Unix users, programmers and system administrators.
Linux / UNIX Processes
What is a Process? Process Structure The ps Utility Options to the ps Utility Background Commands (&) Killing Background Processes Redirecting the Standard Error
Combining Linux commands
Redirecting input, output and error streams Pipe operator Command substitutions (``) And operator Or operator Creating a script
Getting Started
What is a Shell? Running Scripts Specifying the Script’s Interpreter The PATH Environment Variable Sub-shells chmod +x Adding a "shebang" to your script Returning a value from your script
Variables
Shell Variables The read Command The export Command The Shell Environment Variable Substitution Command Substitution Creating an array
Conditional Statements
The Exit Status of Commands
Command Line Examples
The test Command
The if-then-else Construct
The elif Construct
case Statements
Loops
The for Loop
The while Loop
Reading Lines From Files
Using Arrays with Loops
Functions
Shell Functions
Passing Arguments to Functions
Returning Values from Functions
Function Libraries
Special Variables
$$ - PID of Shell Command-Line Arguments $# - Number of Arguments $* - All Arguments The shift Command The set Command Getting Options
Quoting Mechanisms
Single vs. Double Quotes
What is a Here Document?
Using a Here Document
Here Document Quoting
Ignoring Leading Tabs
.bashrc
The Login Process Scripts that are run at startup Making changes persist a reboot
Advanced Programming
Shell Arithmetic
The select Statement
Terminal Independence in Scripts
The eval Command
Debugging techniques
Using echo Using Standard Error Options for Debugging Script Tracing Conditional Debugging
Shell Scripting Alternatives
If you are working on very difficult automation tasks, utilising a different language such as Perl or Python could be beneficial. This lesson will demonstrate how some of the techniques encountered so far can be applied to scripts that are written in a different programming language.