| Michael Walsh | 7d68d00 | 2017-05-05 16:36:54 -0500 | [diff] [blame] | 1 | #!/bin/bash | 
 | 2 |  | 
 | 3 | # Template to start a simple bash program.  This is designed only for the | 
 | 4 | # simplest of programs where all program paramters are positional, there is no | 
 | 5 | # help text, etc. | 
 | 6 |  | 
 | 7 | # Description of argument(s): | 
 | 8 | # parm1            Bla, bla, bla (e.g. "example data"). | 
 | 9 |  | 
 | 10 |  | 
 | 11 | ############################################################################### | 
 | 12 | function get_parms { | 
 | 13 |  | 
 | 14 |   # Get program parms. | 
 | 15 |  | 
 | 16 |   parm1="${1}" ; shift | 
 | 17 |  | 
 | 18 |   return 0 | 
 | 19 |  | 
 | 20 | } | 
 | 21 | ############################################################################### | 
 | 22 |  | 
 | 23 |  | 
 | 24 | ############################################################################### | 
 | 25 | function validate_parms { | 
 | 26 |  | 
 | 27 |   # Validate program parameters. | 
 | 28 |  | 
 | 29 |   # Your validation code here. | 
 | 30 |  | 
 | 31 |   if [ -z "${parm1}" ] ; then | 
 | 32 |     echo "**ERROR** You must provide..." >&2 | 
 | 33 |     return 1 | 
 | 34 |   fi | 
 | 35 |  | 
 | 36 |   return 0 | 
 | 37 |  | 
 | 38 | } | 
 | 39 | ############################################################################### | 
 | 40 |  | 
 | 41 |  | 
 | 42 | ############################################################################### | 
 | 43 | function mainf { | 
 | 44 |  | 
 | 45 |   # We create a mainf for a couple of reasons: | 
 | 46 |   # The coding rules in a template are slightly different than for the true | 
 | 47 |   # mainline.  We wish to eliminate those inconsistencies.  Examples: | 
 | 48 |   # - The "local" builtin is allowed in functions but not in the mainline. | 
 | 49 |   # - It is good practice to have functions return 1 rather than exit 1. | 
 | 50 |   #   return is not valid in the mainline.  Again, we don't want to have to | 
 | 51 |   #   care when we code things about whether we are in the mainline or a | 
 | 52 |   #   function. | 
 | 53 |  | 
 | 54 |   get_parms "$@" || return 1 | 
 | 55 |  | 
 | 56 |   validate_parms || return 1 | 
 | 57 |  | 
 | 58 |   # Your code here... | 
 | 59 |  | 
 | 60 |   return 0 | 
 | 61 |  | 
 | 62 | } | 
 | 63 | ############################################################################### | 
 | 64 |  | 
 | 65 |  | 
 | 66 | ############################################################################### | 
 | 67 | # Main | 
 | 68 |  | 
 | 69 |   mainf "${@}" | 
 | 70 |   rc="${?}" | 
 | 71 |   exit "${rc}" | 
 | 72 |  | 
 | 73 | ############################################################################### |