EEC Logo

Advanced Bash Shell Programming

Duration: 3 days


Individuals requiring a mastery of the command line interface to the UNIX operating system. This includes system administrators, programmers, and power users. This course is a follow-on to the Bash Shell Programming scripting course.

Course Contents

  1. Review of Useful Shell Commands
  2. Interactive Uses of the Shell
    1. Advanced I/O Redirection and Here-Documents
    2. Command Line Parsing and Order of Evaluation
    3. Command Line Editing and Command History
    4. Using the Alias and Function Facilities
    5. Using the bind Command for Keystroke Handling
    6. When to Use Single vs. Double Quotes, or None at All
  3. Programming Topics
    1. Command and Variable Substitution
    2. Using eval, Autoload Functions, and the source Command
    3. Arrays and Arithmetic Variables
    4. Testing Files and Strings
    5. Creating and Using Shell Scripts
    6. Program Flow Control
    7. Debugging Shell Scripts (using bashdb)
    8. Using the trap Command (signal handling)
    9. Invocation and Environment
    10. Performance Evaluation and Tuning

Course Objectives

Upon completion of this course, the student will be able to write and debug advanced Bash Shell scripts using the following features and more:

Instructional Technique

Students are invited to bring their current ideas and questions to the classroom for discussion. Case studies, lecture, group problem solving, and online laboratories will be used. Students will be encouraged to enhance their skills utilizing the techniques presented through classroom problem solving and controlled online workshops.


Familiarity with UNIX commands, directory structure, and the text editor. There is no review of basic features of the shell as covered in the Bash Shell Programming scripting course, so students should be moderately well-versed in simple shell scripting.

Programming skills should be fairly well-developed before taking this course, although everything needed to write shell scripts is covered.