Active Outline

General Information


Course ID (CB01A and CB01B)
CIS D018C
Course Title (CB02)
Bash Scripting
Course Credit Status
Credit - Degree Applicable
Effective Term
Fall 2021
Course Description
Programming in bash shell, Korn shell, Bourne shell, tc shell and C shell.
Faculty Requirements
Course Family
Not Applicable

Course Justification


This course belongs on the Unix/Linux Operating System Certificate. It is CSU and UC transferable. This course teaches shell programming with different shells on the Unix/Linux system. It is the third course in a three-course sequence preparing students for using the Unix/Linux platform for mobile and cloud computing, network servers and database.

Foothill Equivalency


Does the course have a Foothill equivalent?
No
Foothill Course ID

Course Philosophy


Formerly Statement


Course Development Options


Basic Skill Status (CB08)
Course is not a basic skills course.
Grade Options
  • Letter Grade
  • Pass/No Pass
Repeat Limit
0

Transferability & Gen. Ed. Options


Transferability
Transferable to both UC and CSU

Units and Hours


Summary

Minimum Credit Units
4.5
Maximum Credit Units
4.5

Weekly Student Hours

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.0

Course Student Hours

Course Duration (Weeks)
12.0
Hours per unit divisor
36.0
Course In-Class (Contact) Hours
Lecture
48.0
Laboratory
18.0
Total
66.0
Course Out-of-Class Hours
Lecture
96.0
Laboratory
0.0
NA
0.0
Total
96.0

Prerequisite(s)


CIS D018B

Corequisite(s)


Advisory(ies)


Limitation(s) on Enrollment


Entrance Skill(s)


General Course Statement(s)


Methods of Instruction


Lecture and visual aids

Discussion of assigned reading

Discussion and problem solving performed in class

Collaborative learning in small group exercises

Homework and examination review performed in class

Laboratory discussion sessions

Laboratory experience which involve students in shell programs

Homework and extended projects

Assignments


  1. Reading in textbook and lecture notes
  2. 6-10 homework assignments to be done on the Unix/Linux system, covering the Lab Topics specified in X. below, half completed in the computer lab, half completed as homework.

Methods of Evaluation


  1. Successful completion of homework assignments, which are evaluated for completeness and correctness
  2. In-class problems, group collaborative problems, exam questions and/or online assignments used to demonstrate the ability to write efficient shell scripts and to read and debug shell scripts
  3. At least one midterm exam requiring shell script writing and reading shell script code. The exam is to be evaluated for correctness and efficient use of Unix/Linux utilities and shell scripting constructs.
  4. A comprehensive final examination requiring shell script writing and reading shell script code. The exam is to be evaluated for correctness and efficient use of Unix/Linux utilities and shell scripting constructs.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None.
Essential College Facilities:
  • Access to a computer running the UNIX/LINUX operating system

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Sobell, Mark; A Practical Guide to Linux Commands, Editors, and Shell Programming; 4th Edition; Prentice-Hall, 2018; ISBN-13: 978-0-13-477531-9

Examples of Supporting Texts and References


AuthorTitlePublisher
None.

Learning Outcomes and Objectives


Course Objectives

  • Use interactive bash shell features
  • Create and debug bash shell scripts
  • Use interactive Korn shell features
  • Create and debug Korn shell scripts
  • Use interactive tc shell and C shell features
  • Create and debug tc shell and C shell scripts
  • Use interactive Bourne shell features
  • Create and debug Bourne shell scripts
  • Recognize and list the difference between the new shells (bash, tc) and traditional shells (Bourne, Korn, and C)

CSLOs

  • Create programs in the Bourne Again, Bourne, Korn, and C shells, that interact with the Unix/Linux operating system.

Outline


  1. Use interactive bash shell features
    1. Variables and values
    2. Output (echo command)
    3. Input (read command)
    4. Variable evaluation and substitution
    5. Exit status of a command
    6. Expressions (mathematical, relational, file-test, and logical)
    7. Test command
    8. Decision: two way and multi-way
    9. Loops (event and list controlled)
    10. Other control structures
    11. Functions
    12. Loop redirection
    13. Processes
    14. Signals and handling signals (traps)
    15. Environment variables
    16. Customizing shell
  2. Create and debug bash shell scripts
    1. Script concept
    2. Arguments and parameters
    3. Special parameters
    4. Changing parameters
    5. Scripting techniques
    6. User interaction
    7. Script examples and application
  3. Use interactive Korn shell features
    1. Comparing Korn shell to bash shell
    2. Features of the Korn shell
    3. Shell customization
    4. Aliases
    5. History
  4. Create and debug Korn shell scripts
    1. Rewriting bash shell script in Korn shell
    2. New features in Korn shell
    3. Examples and applications
  5. Use interactive tc shell and C shell features
    1. Variables and values
    2. Output
    3. Input
    4. Variable evaluation and substitution
    5. Exit status of a command
    6. Expressions (mathematical, relational, file-test, and logical)
    7. Test command
    8. Decision: two way and multi-way
    9. Loops (event and list controlled)
    10. Other control structures
    11. Functions
    12. Loop redirection
    13. Signals and handling signals (traps)
    14. Environment variables
    15. Customizing shell
  6. Create and debug tc shell and C shell scripts
    1. Script concept
    2. Arguments and parameters
    3. Special parameters
    4. Changing parameters
    5. Scripting Techniques
    6. User interaction
    7. Script examples and applications
  7. Use interactive Bourne shell features
    1. Comparing bash shell to Korn shell
    2. Shell customization
    3. Aliases
    4. History
  8. Create and debug Bourne shell scripts
    1. Examples
    2. Applications
  9. Recognize and list the difference between the new shells (bash, tc) and traditional shells (Bourne, Korn, and C)
    1. Comparing bash, Korn, and Bourne shells
    2. Comparing tcsh and C shells

Lab Topics


  1. Write, test, and debug bash shell scripts using variables, functions, and programming constructs
  2. Write, test, and debug bash shell scripts with command line arguments, strings, and arrays
  3. Write, test, and debug bash shell scripts that handle signals and interrupts
  4. Write, test, and debug Korn shell scripts that include functions, arrays, strings, command line arguments, and signal handling
  5. Write, test, and debug Bourne shell scripts that include functions, arrays, strings, command line arguments, and signal handling
  6. Write, test, and debug tc shell scripts that include functions, arrays, strings, command line arguments, and signal handling
  7. Write, test, and debug C shell scripts that include functions, arrays, strings, command line arguments, and signal handling
Back to Top