At a glance

View schedule & enroll Sorted by: location or date
Course number H4322S
Length VILT delivery 5 days
OST delivery 5 days
Delivery method* Virtual Instructor-Led Training (VILT)
Onsite dedicated training (OST)
Price USD $2,500
CAD $2,750
*Courses are supported in the delivery formats above, but are not necessarily scheduled in every delivery format listed. Please click the schedule links at the top of the page to see which delivery formats are currently scheduled.

Course overview

This course covers advanced POSIX shell programming for technical users and system administrators. You will learn the tools necessary to automate complex tasks and increase productivity. The format of your course is 50 percent lecture and 50 percent hands-on. The duration of your course is five days.


  • UNIX Fundamentals (HP 51434S) or equivalent experience
  • Fundamental knowledge of programming


HP-UX and UNIX general users, system and network administrators, and software developers.

Ways to save

Benefits to you

  • Understand POSIX shell programming and use it to save time with automated scripts
  • Write efficient programs by understanding how shell scripts are processed
  • Customize shell start-up files
  • Easily control your administration tasks

Next Steps

Perl programming (H4311S)

Course outline

  • Introduction to POSIX shell scripts
    • What is a shell script?
    • Script execution
    • The subprocess environment
    • Shell features
  • Shell scripting
    • Which shell?
    • Recommended shell format
    • Planning to write a shell script
    • Portability issues
  • Variables
    • Variables
    • Displaying and using variables
    • Concatenation and substrings
    • Other sources of data for variables
  • User input
    • Reading user input
    • Positional parameters
    • Creating positional parameters
    • Conditional substitution
    • External influences
  • Designing program output
    • Variable attributes
    • Formatted data
    • Cursor positioning and terminal echo
  • Shell arithmetic
    • Creating Integer-only Variables
    • Base 10 and Others
    • Working with arithmetic operators and data
  • Branching and logic testing
    • Logic testing
    • Conditional operators
    • Multi-way branching and the 'case' statement
  • Shell patterns
    • Basic expressions
    • More complex patterns
    • Pattern combinations
  • Program loops
    • The 'while' loop
    • The 'until' loop
    • The 'for' loop
    • Breaking out of a loop and continuing
    • The 'select' loop
  • The 'getopts' Command
    • Processing arguments
    • The getopts and OPTARG variable
    • The OPTIND variable
  • Array variables
    • Substituting and counting
    • Using integer variables as element numbers
  • Functions and function libraries
    • Displaying current shell functions
    • Declaring and using functions
    • Variable scope
    • Function libraries and recursion
  • Managing input and output
    • File descriptors
    • Reading / writing using file descriptors
    • Redirecting, parameter lists and 'here' documents
    • Creating parameter lists from input lines
  • Traps and signals
    • Common signals
    • The trap and stty commands
  • Regular expressions
    • Regular expressions
    • Metacharacters
    • The grep command
  • Introduction to 'awk'
    • Record processing
    • Pattern matching and relational expressions
    • 'awk' variables
  • Variables, strings and arithmetic operations
    • 'awk' user defined variables
    • Environment variables
    • Arithmetic operations
    • String manipulation
    • Formatted output
    • Command line arguments
  • 'awk' flow control
    • Conditional 'if', while and for loops
    • Arrays
    • 'getline', 'next' and 'exit'
    • Processing arrays
    • Associative arrays
  • Stream editing with 'sed'
    • Substituting text
    • Deleting and printing lines
    • Reading and writing files
    • Multiple 'sed' editor functions