Beginner-Intermediate|12 hours|21 lessons

Bash & Shell Scripting for Engineers

A free course covering Bash for engineers who copy-paste shell from Stack Overflow and want to stop. Parsing order, quoting, arrays, set -euo pipefail, traps, input handling, ShellCheck, and the Makefile patterns you see in every serious repo.

Completely Free

No signup required. Start learning now.

Text-based, no videos
7 modules, 21 lessons
No signup required

What you'll learn

How Bash parses a script — word splitting, quoting, expansion order
Parameter expansion — default values, prefix/suffix, case changes
Arrays and associative arrays — when to use each, and the pitfalls
Conditionals with [[ ]] and why it is almost always better than [ ]
Loops that handle filenames with spaces, newlines, and unicode correctly
The set flags — `set -euo pipefail` and when each matters
Traps and cleanup — tempfiles, locks, graceful shutdown
Input handling — getopts, validation, sanitization
Structuring scripts, libraries, and when to switch to Python
Debugging with set -x, PS4, BASH_XTRACEFD, and ShellCheck in CI
Makefiles — the rule model, variables, functions, and the `build/test/lint/ci` conventions you see in every serious repo

Curriculum

7 modules · 21 lessons
01

How Bash Actually Parses Your Script

The mental model that prevents 80% of shell bugs. Word splitting, quoting, command substitution, and the parsing order that makes quoting feel less arbitrary.

3 lessons
02

Variables, Quoting, and Expansions

Parameter expansion shortcuts senior engineers use every day, arrays done right, and the quoting rules that actually matter.

3 lessons
03

Control Flow and Functions

Conditionals, loops, and functions that do not break when input is empty, has spaces, or contains newlines.

3 lessons
04

Error Handling

The set flags, traps, and exit-code discipline that turn a pile of commands into a reliable script.

3 lessons
05

Production-Ready Scripts

Parsing args, handling files with weird names, structuring larger scripts, and knowing when Bash is the wrong tool.

3 lessons
06

Debugging Shell Scripts

The tools and failure modes you need to know — set -x tracing, ShellCheck in CI, and the weird errors that only appear in production.

3 lessons
07

Makefiles and Build Automation

The Makefile patterns you see in every professional repo — finally explained. The rule model, variables, functions, and the conventions (build/test/lint/ci) that make `make` a useful task runner.

3 lessons

About the Author

Sharon Sahadevan

Sharon Sahadevan

AI Infrastructure Engineer

Building production GPU clusters on Kubernetes — H100s, large-scale model serving, and end-to-end ML infrastructure across Azure and AWS.

10+ years designing cloud-native platforms with deep expertise in Kubernetes orchestration, GitOps (Argo CD), Terraform, and MLOps pipelines for LLM deployment.

Author of KubeNatives, a weekly newsletter read by 3,000+ DevOps and ML engineers for production insights on K8s internals, GPU scheduling, and model-serving patterns.

Start learning now — completely free

7 modules, 21 lessons. No signup, no paywall.