Bash or Bourne-Again SHell is a command interpreter and a scripting language widely used as default across Linux-based operating systems. It provides a text interface to it’s users to execute commands. Beyond it’s access to the command-line interface, it has usual programming constructs such as loops, conditional statements, and functions.
The core competencies include advanced commands, using regular expressions, understanding and usage of piping, file handling, trap and signals in bash, functions and usage of command-line arguments.
- Commands in Bash - Parsing and transforming text [sed, cut, awk], finding the difference between two files [diff], etc.
- Regular expressions - Regular expressions are a way to define patterns to match and search for combinations of characters.
- Piping - Piping is a feature that allows users to redirect output in stdout into another destination.
- File handling - Bash supports an interface to read and write into files.
- Trap and Signals - Bash implements a set of natively supported signals, such as SIGTEM, SIGINT, etc. When a specific event occurs Bash raises a signal. Traps are an interface to listen for these signals and subsequently, execute statements when the event occurs.
- Functions - Functions form a great way to reuse blocks of code in a program. It is essential to have an understanding of how to define, call, and pass arguments to a function for this competency.
- Command Line Arguments - Passing and parsing command-line arguments.