<?xml version="1.0" standalone="no" ?>

<!--  TST_KSH5day.xml	Course Outline in XML format
 *
 * Copyright 2009 Affinity IT Training, LLC. All Rights Reserved.
 *
 -->

<!DOCTYPE FAI:CourseOutline SYSTEM "FAI_CourseOutline.dtd">

<?xml-stylesheet type="text/xsl" href="FAI_CourseOutline.xsl" ?>	

<FAI:CourseOutline FAI:link="TST_KSH5day.xml"
     xmlns:FAI="http://www.fisher-assoc.com/DTDs/FAI_CourseOutline.dtd" >

  <FAI:CourseTitle FAI:level="Intermediate"  FAI:code="KSHProg5day">
    Korn Shell Programming - 5 Day (Full Coverage)
  </FAI:CourseTitle>  
  
  <FAI:CourseCategory>Unix</FAI:CourseCategory>
  <FAI:CourseCategory>Linux</FAI:CourseCategory>
  <FAI:CourseCategory>System Administration</FAI:CourseCategory>

  <FAI:SummaryInfo>

    <FAI:CourseDesc>
    	Presents a complete coverage of the features of the Korn Shell (ksh) 
    	programming language. 
        </FAI:CourseDesc>
    <FAI:CourseDuration>
	5 Days
    </FAI:CourseDuration>

    <FAI:CourseAudience>
	Application developers and managers seeking to become proficient users 
	of the Unix operating system's powerful Korn Shell programming language.    
    </FAI:CourseAudience>

    <FAI:CourseObjectives>
    
      <FAI:Objective FAI:desc="Understand the power and utility of shell programming" />
      <FAI:Objective FAI:desc="Be familiar with all ksh programming constructs" />
      <FAI:Objective FAI:desc="Be able to write effective and efficient ksh programs" />
      <FAI:Objective FAI:desc="Be familiar with ksh-specific programming features" />
      <FAI:Objective FAI:desc="Explore the powerful capabilities of the 
      	&quot;sed&quot; and &quot;awk&quot; commands" />
      <FAI:Objective FAI:desc="Understand the concept of using the numbered file 
      	descriptors 3 through 9 which allow Unix shell co-processes to share runtime 
      	data" />
      <FAI:Objective FAI:desc="Understand the concept of creating and using named 
      	pipes (First-In, First-Out data transfer buffers) which allow a Unix shell
      	process to collect data from multiple data sources" />

    </FAI:CourseObjectives>

    <FAI:CourseSetupList>

      <FAI:Setup FAI:desc="Access to a Unix Operating system" />
      <FAI:Setup FAI:desc="Accounts for all Students and Instructor"  />

    </FAI:CourseSetupList>    

   <FAI:CourseTextList>
   
         <FAI:Text FAI:title="Course Workbook" />
         <FAI:Text FAI:title="Learning the Korn Shell, Second Edition" 
         	FAI:link="http://www.oreilly.com/catalog/korn2/" />
   
   </FAI:CourseTextList>    

    <FAI:CoursePrerequisiteList>

      <FAI:CoursePrerequisite FAI:title="Introduction To Unix - 5 Day (Full Coverage)" 
			      FAI:link="TST_Unix5day.xml" />

    </FAI:CoursePrerequisiteList>    

  </FAI:SummaryInfo>  

  <FAI:TopicList>


    <FAI:SuperTopic FAI:title="INTRODUCTION" >
      <FAI:Topic FAI:title="What You Should Already Know..." />
      <FAI:Topic FAI:title="What Is The Shell?" />
      <FAI:Topic FAI:title="The Role Of The Shell" />
      <FAI:Topic FAI:title="Determining Your Shell Type" />
      <FAI:Topic FAI:title="What Is A Shell Program?" />
      <FAI:Topic FAI:title="Creating A Shell Script" />
      <FAI:Topic FAI:title="Comments" />
      <FAI:Topic FAI:title="The Subshell Type Descriptor Record" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="I/O AND VARIABLES" >
      <FAI:Topic FAI:title="Using echo" />
      <FAI:Topic FAI:title="Using print And printf" />
      <FAI:Topic FAI:title="Variables: Overview" />
      <FAI:Topic FAI:title="Variable Assignment" />
      <FAI:Topic FAI:title="Variable Substitution" />
      <FAI:Topic FAI:title="Variable &quot;dump&quot;: set" />
      <FAI:Topic FAI:title="Variable Assignment: read" />
      <FAI:Topic FAI:title="Removing A Variable: unset" />
      <FAI:Topic FAI:title="Exporting Variables: export" />
      <FAI:Topic FAI:title="&quot;Sourcing&quot; A Script With The Dot (.)" />
      <FAI:Topic FAI:title="The Backslash As A Quote: \" />
      <FAI:Topic FAI:title="Single Quotes: &apos;    &apos;" />
      <FAI:Topic FAI:title="Double Quotes: &quot;    &quot;" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="CONDITIONAL BRANCHING" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="Return Values" />
      <FAI:Topic FAI:title="Basic Decision Making: if Blocks" />
      <FAI:Topic FAI:title="The Opposite Of if: else Blocks" />
      <FAI:Topic FAI:title="Contracted Nesting: elif" />
      <FAI:Topic FAI:title="The test Command" />
      <FAI:Topic FAI:title="The test Operators" />
      <FAI:Topic FAI:title="Short Circuit Operators" />
      <FAI:Topic FAI:title="The exit Command" />
      <FAI:Topic FAI:title="Command Substitution: `command`" />
      <FAI:Topic FAI:title="Simple Math: expr  And $(( ))" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="WHILE LOOPS" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="The while Loop" />
      <FAI:Topic FAI:title="The until Loop" />
      <FAI:Topic FAI:title="Loop Control: continue And break" />
      <FAI:Topic FAI:title="Nested Loops As Branch Points" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="FOR LOOPS AND POSITIONAL PARAMETERS" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="The for Loop" />
      <FAI:Topic FAI:title="Positional Parameters" />
      <FAI:Topic FAI:title="Accessing Positional Parameters: shift" />
      <FAI:Topic FAI:title="$* Versus $@" />
      <FAI:Topic FAI:title="Loading Up The Positional Parameters" />
      <FAI:Topic FAI:title="The for Loop Without A List" />
      <FAI:Topic FAI:title="Examples Of for Loops" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="DEBUGGING" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="Execution Trace: set -x" />
      <FAI:Topic FAI:title="Verbose Trace: set -v" />
      <FAI:Topic FAI:title="Combining -x And -v" />
      <FAI:Topic FAI:title="Error Exit: set -e" />
      <FAI:Topic FAI:title="No Execution: set -n" />
      <FAI:Topic FAI:title="No Unset: set -u" />
      <FAI:Topic FAI:title="Temporarily &quot;commenting Out&quot; Code" />
      <FAI:Topic FAI:title="Removing The # Characters" />
      <FAI:Topic FAI:title="Temporary Exits And Breakpoints" />
      <FAI:Topic FAI:title="Bypasses" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="THE case AND select STATEMENTS" >
      <FAI:Topic FAI:title="The case Statement" />
      <FAI:Topic FAI:title="The Patterns" />
      <FAI:Topic FAI:title="A case Example" />
      <FAI:Topic FAI:title="The select Statement" />
      <FAI:Topic FAI:title="A select Example" />
      <FAI:Topic FAI:title="LINES And COLUMNS" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="THE 'HERE' DOCUMENT" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="The 'here' Document: &lt;&lt;" />
      <FAI:Topic FAI:title="Allowing Indentation With Tabs" />
      <FAI:Topic FAI:title="Preventing Substitutions" />
      <FAI:Topic FAI:title="Self-extracting Scripts" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="SPECIAL VARIABLE SUBSTITUTIONS" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="Default Substitute Value" />
      <FAI:Topic FAI:title="Assign Default Value" />
      <FAI:Topic FAI:title="Print Error And exit" />
      <FAI:Topic FAI:title="Alternate Value Substitution" />
      <FAI:Topic FAI:title="Pattern Substring Deletion" />
      <FAI:Topic FAI:title="Variable Value Length" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="ARRAYS AND typeset" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="The typeset Built In" />
      <FAI:Topic FAI:title="Typeset Options" />
      <FAI:Topic FAI:title="Examples Of typeset" />
      <FAI:Topic FAI:title="Removing Attributes With typeset" />
      <FAI:Topic FAI:title="Indexed Arrays" />
      <FAI:Topic FAI:title="Array Example" />
      <FAI:Topic FAI:title="The IFS Variable" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Hints" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="SIGNALS AND TRAPS" >
      <FAI:Topic FAI:title="Keyboard &quot;interrupts&quot;" />
      <FAI:Topic FAI:title="Signals, PID's And kill" />
      <FAI:Topic FAI:title="Terminating A Process: kill" />
      <FAI:Topic FAI:title="Protecting Your Scripts: trap" />
      <FAI:Topic FAI:title="Setting An Ignore trap" />
      <FAI:Topic FAI:title="Setting A Catch trap" />
      <FAI:Topic FAI:title="Setting A Catch trap for The exit Signal" />
      <FAI:Topic FAI:title="A trap Within A trap" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="FUNCTIONS" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="Creating A Function" />
      <FAI:Topic FAI:title="Function Definition Files" />
      <FAI:Topic FAI:title="Removing Functions" />
      <FAI:Topic FAI:title="Autoloading Functions" />
      <FAI:Topic FAI:title="Variable Scope In Functions" />
      <FAI:Topic FAI:title="Positional Parameters And Functions" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="INTRODUCTION TO sed" >
      <FAI:Topic FAI:title="Automating Changes: sed" />
      <FAI:Topic FAI:title="How sed Works" />
      <FAI:Topic FAI:title="sed Commands" />
      <FAI:Topic FAI:title="sed Command Examples" />
      <FAI:Topic FAI:title="sed Example" />
      <FAI:Topic FAI:title="sed Example Walk Through" />
      <FAI:Topic FAI:title="The -n Option" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Hints" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="MORE sed" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="Reading In A File: R" />
      <FAI:Topic FAI:title="Writing To A File: W" />
      <FAI:Topic FAI:title="Quitting: Q" />
      <FAI:Topic FAI:title="Grouped Commands: {  }" />
      <FAI:Topic FAI:title="Multiline read Next: N" />
      <FAI:Topic FAI:title="Hold And Get: H H G G" />
      <FAI:Topic FAI:title="Do Not Execute: !" />
      <FAI:Topic FAI:title="Comments In A sed Script: #" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Hints" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="INTRODUCTION TO awk" >
      <FAI:Topic FAI:title="A Programming Language: awk" />
      <FAI:Topic FAI:title="Command Line Syntax" />
      <FAI:Topic FAI:title="How awk Works" />
      <FAI:Topic FAI:title="Patterns And Actions" />
      <FAI:Topic FAI:title="Old, New Or GNU?" />
      <FAI:Topic FAI:title="Records, Fields And Special Variables" />
      <FAI:Topic FAI:title="Simple Actions" />
      <FAI:Topic FAI:title="Simple Patterns" />
      <FAI:Topic FAI:title="Regular Expressions As Patterns" />
      <FAI:Topic FAI:title="More About Printing" />
      <FAI:Topic FAI:title="Literal Values" />
      <FAI:Topic FAI:title="Special Patterns: BEGIN And END" />
      <FAI:Topic FAI:title="Better Output Format: printf" />
      <FAI:Topic FAI:title="User Defined Variables" />
      <FAI:Topic FAI:title="Operators" />
      <FAI:Topic FAI:title="The END Pattern" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Hints" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="MORE awk" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="Conditional Logic" />
      <FAI:Topic FAI:title="The while Loop" />
      <FAI:Topic FAI:title="The for Loop" />
      <FAI:Topic FAI:title="awk Functions" />
      <FAI:Topic FAI:title="String Manipulation" />
      <FAI:Topic FAI:title="Other awk Things Not Covered Here" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="ADVANCED I/O" >
      <FAI:Topic FAI:title="Overview" />
      <FAI:Topic FAI:title="exec And File Descriptors 3 Through 9" />
      <FAI:Topic FAI:title="Co-processes" />
      <FAI:Topic FAI:title="Named Pipes" />
      <FAI:Topic FAI:title="Exercises" />
      <FAI:Topic FAI:title="Exercise Solutions" />
    </FAI:SuperTopic>

    <FAI:SuperTopic FAI:title="APPENDIX: WHAT YOU SHOULD ALREADY KNOW" >
      <FAI:Topic FAI:title="What You Should Know" />
      <FAI:Topic FAI:title="vi Editor Summary" />
      <FAI:Topic FAI:title="Regular Expression Metacharacter Summary" />
      <FAI:Topic FAI:title="Finding Patterns With grep" />
      <FAI:Topic FAI:title="Extracting Fields With cut" />
    </FAI:SuperTopic>


</FAI:TopicList>
 
</FAI:CourseOutline>
