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.
#!/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.
Related files
- shShell — Hello WorldThe classic hello-world in Bash — a shebang and echo, with LF line endings so it runs on Unix — for testing highlighters, ShellCheck, and shell parsers.

- cC — Hello WorldThe classic hello-world in C — an include, main, and printf — for testing highlighters, C compilers, and parsers against the canonical first program.

- cC — Linked list (structs, malloc, pointers)A realistic C program: a singly linked list with a typedef struct, malloc/free memory management, pointer walking, and error handling — for testing highlighters, compilers, and static analysers.

- cppC++ — Hello WorldThe classic hello-world in C++ — iostream and std::cout — for testing highlighters, C++ compilers, and parsers.

- cppC++ — Series (class template, STL)A realistic C++ snippet with a class template, STL algorithms (max_element, accumulate), std::move, and range handling — for testing highlighters, g++/clang++, and parsers against real templates.

- cssCSS — Component styles (variables, flexbox, keyframes)A realistic component stylesheet using custom properties, flexbox, a fluid clamp() font size, color-mix(), a keyframe animation, and a media query — for testing CSS parsers, linters (stylelint), and highlighters.

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