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
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
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 1.5 | 0.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
- Reading in textbook and lecture notes
- 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
- Successful completion of homework assignments, which are evaluated for completeness and correctness
- 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
- 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.
- 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.
- Access to a computer running the UNIX/LINUX operating system
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
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
Author | Title | Publisher |
---|---|---|
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
- Use interactive bash shell features
- Variables and values
- Output (echo command)
- Input (read command)
- Variable evaluation and substitution
- Exit status of a command
- Expressions (mathematical, relational, file-test, and logical)
- Test command
- Decision: two way and multi-way
- Loops (event and list controlled)
- Other control structures
- Functions
- Loop redirection
- Processes
- Signals and handling signals (traps)
- Environment variables
- Customizing shell
- Create and debug bash shell scripts
- Script concept
- Arguments and parameters
- Special parameters
- Changing parameters
- Scripting techniques
- User interaction
- Script examples and application
- Use interactive Korn shell features
- Comparing Korn shell to bash shell
- Features of the Korn shell
- Shell customization
- Aliases
- History
- Create and debug Korn shell scripts
- Rewriting bash shell script in Korn shell
- New features in Korn shell
- Examples and applications
- Use interactive tc shell and C shell features
- Variables and values
- Output
- Input
- Variable evaluation and substitution
- Exit status of a command
- Expressions (mathematical, relational, file-test, and logical)
- Test command
- Decision: two way and multi-way
- Loops (event and list controlled)
- Other control structures
- Functions
- Loop redirection
- Signals and handling signals (traps)
- Environment variables
- Customizing shell
- Create and debug tc shell and C shell scripts
- Script concept
- Arguments and parameters
- Special parameters
- Changing parameters
- Scripting Techniques
- User interaction
- Script examples and applications
- Use interactive Bourne shell features
- Comparing bash shell to Korn shell
- Shell customization
- Aliases
- History
- Create and debug Bourne shell scripts
- Examples
- Applications
- Recognize and list the difference between the new shells (bash, tc) and traditional shells (Bourne, Korn, and C)
- Comparing bash, Korn, and Bourne shells
- Comparing tcsh and C shells
Lab Topics
- Write, test, and debug bash shell scripts using variables, functions, and programming constructs
- Write, test, and debug bash shell scripts with command line arguments, strings, and arrays
- Write, test, and debug bash shell scripts that handle signals and interrupts
- Write, test, and debug Korn shell scripts that include functions, arrays, strings, command line arguments, and signal handling
- Write, test, and debug Bourne shell scripts that include functions, arrays, strings, command line arguments, and signal handling
- Write, test, and debug tc shell scripts that include functions, arrays, strings, command line arguments, and signal handling
- Write, test, and debug C shell scripts that include functions, arrays, strings, command line arguments, and signal handling