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

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.

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