#!/usr/bin/env bash set -u usage() { printf 'Usage: %s -n NAME [-d] [FILE...]\n' "${0##*/}" } name= dry_run=0 while getopts ':n:dh' option; do case $option in n) name=$OPTARG ;; d) dry_run=1 ;; h) usage; exit 0 ;; :) printf 'Missing value for -%s\n' "$OPTARG" >&2; usage >&2; exit 2 ;; \?) printf 'Unknown option: -%s\n' "$OPTARG" >&2; usage >&2; exit 2 ;; esac done shift "$((OPTIND - 1))" if [[ -z $name ]]; then printf 'Missing required option: -n\n' >&2 usage >&2 exit 2 fi printf 'archive=%s\n' "$name" printf 'dry_run=%s\n' "$dry_run" for file in "$@"; do printf 'input=%s\n' "$file" done