#!/usr/bin/env bash set -eo pipefail #DESC Skeleton script #HELP usage: ./skel 1 2 3 4 y #PRDno # List the variable names # if passed via cli, assign value to var name # if not, prompt for value # if VARS=() below, no data collection needed # if $# + 1 != "y" then ask if sure VARS=(Name Public NET Passphrase) count=$((${#VARS[@]} + 1)) force="${!count}" for var_name in "${VARS[@]}"; do if [[ $# -gt 0 ]]; then value="$1" shift else read -r -p "Enter ${var_name}: " value fi printf -v "$var_name" '%s' "$value" done for var_name in "${VARS[@]}"; do echo "$var_name=${!var_name}" done # if force flag not set, ask if prompts correct [ "$force" != "y" ] && echo -n "Correct y/n " && read ans && [ "$ans" != "y" ] && exit 0 # Script main echo "Do stuff......" # pass back exit code from last command exit $?