Skip to content
Novus Examples
sh706 B

Shell — Backup script (strict mode, functions)

A realistic Bash script using strict mode (set -euo pipefail), functions, default parameters, a loop, and conditionals — an illustrative fixture (review before running) for testing highlighters, ShellCheck, and shfmt.

Preview — first 37 linessh
#!/usr/bin/env bash
#
# A small backup script: strict mode, functions, default arguments,
# a loop, and conditionals. (Illustrative fixture - review before running.)
set -euo pipefail

readonly SOURCE_DIR="${1:-./data}"
readonly DEST_DIR="${2:-./backups}"

log() {
  printf '[%s] %s\n' "$(date +%H:%M:%S)" "$*"
}

require_dir() {
  local dir="$1"
  if [[ ! -d "$dir" ]]; then
    log "error: directory not found: $dir"
    exit 1
  fi
}

main() {
  require_dir "$SOURCE_DIR"
  mkdir -p "$DEST_DIR"

  local count=0
  for file in "$SOURCE_DIR"/*; do
    [[ -e "$file" ]] || continue
    cp -- "$file" "$DEST_DIR/"
    count=$((count + 1))
  done

  log "copied ${count} file(s) to ${DEST_DIR}"
}

main "$@"

Specifications

Language
Shell
Kind
realistic snippet
Lines
36
Encoding
UTF-8
Line Endings
LF

Testing contract

Expected to pass
Scenario
Run ShellCheck and shfmt over the file without executing it.
Expected result
ShellCheck reports no findings: `set -euo pipefail` is present, every expansion is quoted, `local` is declared separately from assignment, and `cp --` guards against filenames that begin with a dash. Reading it is the test - it copies files, so it is a lint and format fixture rather than something to run.

What is a .sh file?

A shell script (.sh) is a plain-text program for a Unix shell such as bash — a sequence of commands with variables, conditionals, loops, functions, and pipelines. Scripts start with a shebang line (like #!/usr/bin/env bash) and are used for automation, builds, and system administration.

How to use this file

Use an example .sh file to test syntax highlighters, shell linters (ShellCheck), formatters (shfmt), and parser or language-detection tooling. It uses LF line endings so it runs correctly on Unix.

How to use this file for testing

“Shell — Backup script (strict mode, functions)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.

Documented properties for this file: Shell · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.

Code examples

bash backup.sh

Generated by generation/code_samples.py. Free for any use, no attribution required — license.