17d68d00bSMichael Walsh#!/bin/bash 27d68d00bSMichael Walsh 37d68d00bSMichael Walsh# Template to start a simple bash program. This is designed only for the 44f5eb807SGeorge Keishing# simplest of programs where all program parameters are positional, there is no 57d68d00bSMichael Walsh# help text, etc. 67d68d00bSMichael Walsh 77d68d00bSMichael Walsh# Description of argument(s): 87d68d00bSMichael Walsh# parm1 Bla, bla, bla (e.g. "example data"). 97d68d00bSMichael Walsh 107d68d00bSMichael Walsh 11*90dfee36SPatrick Williamsfunction get_parms() { 127d68d00bSMichael Walsh 137d68d00bSMichael Walsh # Get program parms. 147d68d00bSMichael Walsh 157d68d00bSMichael Walsh parm1="${1}" ; shift 167d68d00bSMichael Walsh 177d68d00bSMichael Walsh return 0 187d68d00bSMichael Walsh 197d68d00bSMichael Walsh} 207d68d00bSMichael Walsh 217d68d00bSMichael Walsh 22*90dfee36SPatrick Williamsfunction exit_function() { 237beadb2aSMichael Walsh 247beadb2aSMichael Walsh return 257beadb2aSMichael Walsh 267beadb2aSMichael Walsh} 277beadb2aSMichael Walsh 28*90dfee36SPatrick Williamsfunction validate_parms() { 297d68d00bSMichael Walsh 307d68d00bSMichael Walsh # Validate program parameters. 317d68d00bSMichael Walsh 327d68d00bSMichael Walsh # Your validation code here. 337d68d00bSMichael Walsh 347d68d00bSMichael Walsh if [ -z "${parm1}" ] ; then 357d68d00bSMichael Walsh echo "**ERROR** You must provide..." >&2 367d68d00bSMichael Walsh return 1 377d68d00bSMichael Walsh fi 387d68d00bSMichael Walsh 397beadb2aSMichael Walsh trap "exit_function $signal \$?" EXIT 407beadb2aSMichael Walsh 417d68d00bSMichael Walsh return 0 427d68d00bSMichael Walsh 437d68d00bSMichael Walsh} 447d68d00bSMichael Walsh 457d68d00bSMichael Walsh 46*90dfee36SPatrick Williamsfunction mainf() { 477d68d00bSMichael Walsh 487d68d00bSMichael Walsh get_parms "$@" || return 1 497d68d00bSMichael Walsh 507d68d00bSMichael Walsh validate_parms || return 1 517d68d00bSMichael Walsh 527d68d00bSMichael Walsh # Your code here... 537d68d00bSMichael Walsh 547d68d00bSMichael Walsh return 0 557d68d00bSMichael Walsh 567d68d00bSMichael Walsh} 577d68d00bSMichael Walsh 587d68d00bSMichael Walsh 597d68d00bSMichael Walsh# Main 607d68d00bSMichael Walsh 617d68d00bSMichael Walshmainf "${@}" 627d68d00bSMichael Walshrc="${?}" 637d68d00bSMichael Walshexit "${rc}" 64