FREE COURSE / REAL PRACTICE
Bash & shell scripting
Make arguments, quoting, streams, pipelines, files and processes work together in dependable shell programs.
What you’ll work toward
Build command-line tools that preserve filenames and arguments, report errors and clean up resources deliberately.
Read an explanation, inspect the diagrams and work through the available checks, debugging exercises and builds. Feedback and prerequisite links guide the next step.
Before you start
The entry lesson has no earlier CodeRigor skill prerequisite. Start there and follow the sequence.
Individual lessons can add prerequisites. The course map shows your actual readiness.
A look inside the first lesson
Arguments, quoting & expansion
values=('two words' '' '*')
printf 'count=%s\n' "${#values[@]}"
for value in "${values[@]}"; do printf '<%s>\n' "$value"; doneYour course outline
Follow the lessons in curriculum order. Open a unit to preview the ideas you’ll work with.
Bash: quoting, conditions & arrays
- LESSON 01.01
Arguments, quoting & expansion
Preserve argument boundaries, empty values and literal pattern characters when expanding shell data.
Open lesson - LESSON 01.02
Exit status, tests & conditions
Use status as control flow, distinguish string and arithmetic tests, and validate numeric input before arithmetic.
Open lesson - LESSON 01.03
Loops, indexed arrays & exact matching
Build arrays without splitting elements, preserve encounter order and compare user strings literally.
Open lesson
Bash: functions & pipelines
- LESSON 02.01
Functions, scope & argument forwarding
Use function-local variables and positional arguments without changing the caller’s state.
Open lesson - LESSON 02.02
Pipelines, redirection & failure propagation
Connect streams, keep diagnostics separate and detect an upstream failure even when the last command succeeds.
Open lesson
Bash: text reports & files
- LESSON 03.01
Text tools, fields & deterministic reports
Filter structured text, aggregate repeated keys and sort explicitly rather than depending on map iteration order.
Open lesson - LESSON 03.02
Files, pathnames & safe tool arguments
Handle filenames as data, use redirection and option terminators, and avoid parsing ls output.
Open lesson
Bash: processes & command-line tools
- LESSON 04.01
Background work, wait & cleanup traps
Wait for the child you launched, preserve its status and remove temporary work on the parent’s exit path.
Open lesson - LESSON 04.02
Robust command-line scripts & validation
Separate option parsing from data, preserve empty values and return clear diagnostics and exit statuses.
Open lesson