Skip to content
Clairos Learn

Shell scripting · Lesson 4 of 31 · 8 minutes

Basename in scripts

Use basename to report script inputs.

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.

basename
Remove directory components from a path string.

String manipulation does not verify that the target exists.

printf
Format data deliberately, including separators and final newlines.

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

xargs
Practice constructing a supported command from input words.

Whitespace splitting does not safely represent every possible filename.

history
Review commands entered during this session. History is a navigation aid, not evidence that a command succeeded.

Completion in this release checks command outcomes, not history strings alone.

Worked example and expected result
$ basename scripts/deploy.sh
deploy.sh

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

$ printf scripts/deploy.sh | xargs basename
deploy.sh

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

$ history
   1  basename scripts/deploy.sh
   2  printf scripts/deploy.sh | xargs basename

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 “Basename in scripts”, which interpretation is safe?

Apply it elsewhere

Before adapting the printf workflow from “Basename in scripts” to another server, what should you do?

Keep the momentum.

Complete the lab, then explain and apply the pattern.

Next: Dirname in scriptsTry 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. 01Test guardsUse test commands as script-style guards.Practice
  2. 02Dirname in scriptsUse dirname to reason about script paths.Practice
  3. 03Sed config previewPreview config text replacement as a script step.Practice