Skip to content

Instantly share code, notes, and snippets.

@bryaneaton
Forked from sempervent/bash_skeleton.sh
Created September 24, 2019 15:52
Show Gist options
  • Save bryaneaton/6779d2e865899a43a8b80f9359a7ae37 to your computer and use it in GitHub Desktop.
Save bryaneaton/6779d2e865899a43a8b80f9359a7ae37 to your computer and use it in GitHub Desktop.
A skeleton for bash Scripts
#!/usr/bin/env bash
# usage {{{1 ------------------------------------------------------------------
#/ Usage:
#/ -h|-?|--help)
#/ show this help and exit
#/
# 1}}} ------------------------------------------------------------------------
# environment {{{1 ------------------------------------------------------------
# 1}}} ------------------------------------------------------------------------
# functions {{{1 --------------------------------------------------------------
banner() { # {{{2 -------------------------------------------------------------
echo -e "\\e[31m Some Project Banner\\e[39m"
} # 2}}} ----------------------------------------------------------------------
die() { # {{{2 ----------------------------------------------------------------
echo -e "\\e[31mFAILURE:\\e[39m $1"
exit 1
} # 2}}} ----------------------------------------------------------------------
warn() { # {{{2 ---------------------------------------------------------------
echo -e "\\e[33mWARNING:\\e[39m $1"
} # 2}}} ----------------------------------------------------------------------
show_help() { # {{{2 ----------------------------------------------------------
grep '^#/' "${BASH_SOURCE[0]}" | cut -c4- || \
die "Failed to display usage information"
} # 2}}} ----------------------------------------------------------------------
# 1}}} ------------------------------------------------------------------------
# arguments {{{1 --------------------------------------------------------------
while :; do
case $1 in # check arguments {{{2 -------------------------------------------
-h|-\?|--help) # help {{{3 ------------------------------------------------
banner
show_help
exit
;; # 3}}} ---------------------------------------------------------------
-?*) # unknown argument {{{3 ----------------------------------------------
warn "Unknown option (ignored): $1"
shift
;; # 3}}} ---------------------------------------------------------------
*) # default {{{3 ---------------------------------------------------------
break # 3}}} ------------------------------------------------------------
esac # 2}}} -----------------------------------------------------------------
done
# 1}}} ------------------------------------------------------------------------
# logic {{{1 ------------------------------------------------------------------
banner
# 1}}} ------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment