Bash scripting fundamentals for support technicians
For support and MSP technicians who run, review or lightly edit Bash maintenance scripts on customer Linux servers (cleanup jobs, backup wrappers, health checks). You should already be comfortable at a Linux prompt (see Linux administration basics). The course covers how a script reports success and failure, why unquoted variables break scripts, how set -e, -u and pipefail really behave, and how to test a script before it touches a customer system. Ends with a supervisor-graded script review and repair.
- Level
- Intermediate
- Length
- About 75 minutes
- Contents
- 4 lessons · final exam
- Status
- Published · updated 10 Oct 2026
Skills you'll practise
- Interpret exit statuses 0, 1, 126, 127 and 128+n in script output or a scheduler log
- Identify unquoted expansions that break on spaces, empty values or wildcards, and write quoted, guarded replacements
- Predict whether a script stops or carries on after a failing command when set -e and pipefail are on or off
- Choose a safe test method (syntax check, static check, dry run, test copy) before running a script on a customer system
Course outline
- 1.Exit statuses: how a script says it workedLesson · 15 min
- 2.Quoting and guards: where support scripts breakLesson · 20 min
- 3.Failing safely: set -e, -u, pipefail and trapsLesson · 20 min
- 4.Choosing a safe test before a script touches a customer systemLesson · 10 min
- 5.Bash scripting fundamentals for support technicians: knowledge checkKnowledge check · 16 questions
- 6.Bash scripting fundamentals for support technicians: practical exerciseKnowledge check · 1 question
- 7.Final exam8 questions · passing it completes the course, so people who already know the material can test out
Sources it draws on
The lessons and questions are written from these references, so learners can go back to the original.
- bash(1) manual page, GNU Bash 5.3 (man7.org Linux man-pages): exit status, pipelines, word splitting, parameter expansion, set and trap builtins
- ShellCheck wiki: SC2086, double quote to prevent globbing and word splitting
- ShellCheck wiki: SC2115, use "${var:?}" so a path never expands to /*
- grep(1) manual page (man7.org Linux man-pages): exit status 0, 1 and 2
- signal(7) manual page (man7.org Linux man-pages): standard signal numbers such as SIGKILL 9 and SIGTERM 15
See it with your own jobs and topics
Tell us about your team and we'll walk you through setup, from choosing jobs to your first skills check.