Bash Scripting
This, along with the other courses can be given either on-site in the offices of the client or on-line via Zoom or other means. Contact Gabor Szabo for more details.
Overview
Goals
- To be able to write and maintain scripts written in Bash
Audience
- Experienced UNIX/Linux user
- System administrators who would like to save time by automating tasks.
- DevOps engineers who need to automate processes.
- Anyone who needs to make their life on UNIX
Prerequisites
- In order to take this course you must have working knowledge of the UNIX shell.
- Be able to use at least one Unix/Linux editor. Preferably Vim or Emacs.
Course format
- Total length of the course is 16-24 academic hours. (2-3 days.)
- About 50% of the time is hands on lab work.
Syllabus
Bash and Bash scripts
- Shell types
- Advantages of Bash
- Executing commands
- Shell building blocks (syntax, shell commands, shell functions)
Writing and debugging scripts
- Hello world
- Creating script
- Executing script
- Sh-bang
- Comments
- Debugging
The Bash environment
- Shell initialization files
- Configuration files
- Variables (Global and Local)
- Creating variables
- Using variables
- Exporting variables
- Strings and Quoting characters
- Shell expansion
- Aliases
- Displaying and changing Options
- Pipelines
Wildcards are not Regexes
- Wildcards
- Character Classes
Regular Expressions
- grep, egrep
- Character classes
sed (Stream EDitor)
- Printing lines containing a pattern
- Deleting lines of input containing a pattern
- Ranges of lines
- Find and replace with sed
awk (Gawk The GNU awk programming language)
- Getting Started with awk commands
- Printing selected fields
- The input field separator
- The output field separator
- The BEGIN and END blocks
- User defined variables
Control Flow and Conditional statements
- if, then, else, fi
- Checking command line arguments
- Testing the number of arguments
- Testing that a file exists
- Comparison Operators
- Boolean operations
- Nested if/then Condition Tests
- exit status codes
- case
Writing interactive scripts I/O
- Displaying user messages using echo
- Catching user input using the read built-in command
- Prompting for user input
- Redirection and file descriptors
- File input and output
- Here documents
Loops for Repetitive tasks
- The for loop
- The while loop
- The until loop
- Break and continue
- Making menus with the select built-in
- The shift built-in
Types of Variables
- Scalars
- Arrays
- Constants (readonly variables)
- Operations on variables
- Variable assignment
- Variable substitution
Functions
- Function syntax
- Positional parameters in functions
- Listing functions
Catching signals
- What are Signals
- How to send signals
- Trapping signals
Useful shell commands
- awk
- cat
- cd
- chgrp
- chmod
- chown
- cp
- cut
- echo
- egrep
- exit
- getops
- grep
- head
- ls
- mv
- pwd
- sed
- sort
- tail
- touch
- uniq
- wc
Resources
If you are interested in this course, contact Gabor Szabo for more details.