#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: dice [SIZE] dice -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message SIZE the size of the dice (default: 6) Examples: Roll a dice of size 6: $ dice Roll a D20: $ dice 20 EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'h' flag; do case "$flag" in h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) SIZE="${1:-6}" echo $(((RANDOM % SIZE) + 1))