Skip to content
Clairos Learn

Shell scripting · Lesson 21 of 31 · 8 minutes

Config diff script

Review config drift with diff and grep.

Mastery 0/3Run itExplain itApply it
learner@clairosSimulated Linux lab
learner@clairos:~ $
↑ history · Tab complete · Ctrl+C cancel · Esc, Tab to leaveExit 0

Understand the pattern

Junior operators build confidence by gathering evidence before changing systems.

diff
Compare two text files; a difference is a meaningful nonzero status, not necessarily an execution error.

Status 1 means differences for diff; shell status must be interpreted in command context.

grep
Select input lines that match a pattern; -i ignores case, -n adds line numbers, and -v inverts selection.

No matches is exit status 1, which is different from a malformed invocation.

printf
Format data deliberately, including separators and final newlines.

A format string controls output; a newline is data, not an automatic guarantee.

tee
Copy a stream both to a file and standard output; -a appends.

tee can overwrite a file even though the output is also visible on screen.

Worked example and expected result
$ diff data/config-a.conf data/config-b.conf
--- /home/learner/data/config-a.conf
+++ /home/learner/data/config-b.conf
-listen 443 ssl;
+listen 8443 ssl;

Exit status: 1. This nonzero result is an expected part of this exercise.

$ grep listen data/config-b.conf
listen 8443 ssl;

Exit status: 0. The command completed successfully in the training fixture.

$ printf config-diff-reviewed | tee lab/config-diff.txt
config-diff-reviewed

Exit status: 0. The command completed successfully in the training fixture.

Try a variation

Repeat this workflow in the sandbox with a different scratch filename. Keep the system fixtures unchanged and compare the observed output with your expectation before moving on.

Explain it

In “Config diff script”, which interpretation is safe?

Apply it elsewhere

Before adapting the grep workflow from “Config diff script” to another server, what should you do?

Keep the momentum.

Complete the lab, then explain and apply the pattern.

Next: Argument shape reviewTry an incident drill

Anonymous lesson and mastery progress lasts for this session. Sign in to keep synced lesson XP between sessions; mastery stays device-local. No speed bonus, lost lives, or hint penalties.

Keep learning

  1. 01Path helper script reviewUse basename and dirname as script building blocks.Practice
  2. 02Argument shape reviewUse xargs only for safe argument shaping.Practice
  3. 03Executable bit reviewSet executable mode only after reading a script.Practice