#!/usr/bin/env zsh emulate -L zsh setopt err_exit no_unset region="us-east-1" dry_run=0 while getopts ":nr:" opt; do case $opt in n) dry_run=1 ;; r) region=$OPTARG ;; :) print -u2 -- "missing value for -$OPTARG" exit 2 ;; \?) print -u2 -- "unknown option: -$OPTARG" exit 2 ;; esac done shift $(( OPTIND - 1 )) environment=${1-} if [[ -z $environment ]]; then print -u2 -- 'usage: deploy-options.zsh [-n] [-r region] environment' exit 2 fi print -r -- "environment=$environment" print -r -- "region=$region" print -r -- "dry_run=$dry_run"