
Most of the built-in shell commands are introduced together with the main program control structures. This course is not suitable for C shell programmers.

Similarly, the course is targeted to closely follow the official Linux Professional Institute (LPI) curriculum for certification.

Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.

Course Objectives
To provide the skills needed to develop and customise shell programs.

Who will the Course Benefit?
Programmers, administrators and support personnel who need to understand existing shell scripts, automate procedures and write their own utilities.
Skills Gained
The delegate will learn and acquire skills as follows:
- Writing simple scripts to enhance basic command output
- Using the various shell quoting mechanisms appropriately
- Manipulating shell variables and user-defined variables in scripts
- Implementing conditional execution facilities
- Using the shell's built-in loop constructs where appropriate
- Writing scripts to trap user interrupts
- User defined Functions
- Developing menu-driven shell scripts
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions

Session 1: LINUX COMMAND REVIEW
- Basic Linux commands
- General commands
- File and directory handling commands
- Filename generation characters and regular expressions (regex)
- I/O Redirection features
- Other commands

Session 2: GETTING STARTED
- What is a shell script?
- Development guidelines
- Creating and editing shell scripts
- Naming and storing shell scripts
- Executing shell scripts
- Exercise: Write a simple shell script

Session 3: USING VARIABLES
- Environment variables
- Local variables
- Assigning values to variables
- Assessing variable values
- Using quotes
- Delimiting variable names
- Echo control sequences
- Exercise: Add variables to a script

Session 4: INTEGER ARITHMETIC
- Using the expr command
- Using the (( )) notation
- Exercise: Add integer arithmetic to a shell script

Session 5: HANDLING RUN TIME DATA
- The read command
- Command line arguments
- Exercise: Writing a generic shell script
- Exercise: Writing an interactive shell script

Session 6: CONDITIONAL EXECUTION
- The if statement
- The test command
- Exercise: Adding validation to previous scripts

Session 7: ADDITIONAL KORN, BASH & POSIX SYNTAX
- Other test notations
- Default and substitute variables
- Exit status codes
- Exercise

Session 8: LOOP CONSTRUCTS
- The while loop
- The until loop
- The for loop
- The while true and until false loops
- Loop control commands
- Exercise: Enhancing the previously written scripts
- Exercise: Writing a script to copy files using a 'for' loop
- Exercise: Writing a script to generate numbers with the 'while' loop

Session 9: MULTI-BRANCH DECISIONS
- The case statement
- Menu driven applications
- Exercise: Developing and writing a menu system

Session 10: FUNCTIONS
- What is a function?
- Syntax
- Examples
- Exercise: Add a function to a script

Session 11: INTERRUPT HANDLING
- Interrupt signals
- Trapping interrupts
- Exercise: Adding traps to the menu script

Session 12: ADDITIONAL FEATURES AND FACILITIES
- The exec commands
- The includes notation
- More about loops
- Arrays
- Here Documents
- Exercise: Create a here script
Notes:
- Course technical content is subject to change without notice.
- Course content is structured as sessions, this does not strictly map to course timings. Concepts, content and practicals often span sessions

Examinations
This course together with the Linux Introduction course is an excellent choice for delegates preparing to take the following exam:
- Linux Essentials (LPI, exam 010-160)

This course together with the Linux Introduction and Linux System Administration (LPI) courses are an excellent choice for delegates preparing to take the following exams:
- Linux Administrator (LPIC-1, exams LPI 101-500 and LPI 102-500)

Attending these courses and studying the associated reference materials can form part of the preparation to achieve certification. Experience, practice, self-study and aptitude are also key requirements for exam success.

Before taking any exam, ensure you have the recommended experience. The LPI website lists all exam requirements and these are updated regularly.

Exams are not included as part of the course

Requirements
The Linux Shell Programming course assumes knowledge of the LINUX Operating System to the level covered in the Linux Introduction course. Some programming experience may also prove advantageous.

Pre-Requisite Courses
Linux Introduction

Further Learning
Linux System Administration (LPI)
Linux Advanced Shell Programming Tools
Linux Networking
Oracle SQL

Subject to change after publishing