|  | #!/bin/bash | 
|  |  | 
|  | # Template to start a simple bash program.  This is designed only for the | 
|  | # simplest of programs where all program paramters are positional, there is no | 
|  | # help text, etc. | 
|  |  | 
|  | # Description of argument(s): | 
|  | # parm1            Bla, bla, bla (e.g. "example data"). | 
|  |  | 
|  |  | 
|  | ############################################################################### | 
|  | function get_parms { | 
|  |  | 
|  | # Get program parms. | 
|  |  | 
|  | parm1="${1}" ; shift | 
|  |  | 
|  | return 0 | 
|  |  | 
|  | } | 
|  | ############################################################################### | 
|  |  | 
|  |  | 
|  | ############################################################################### | 
|  | function validate_parms { | 
|  |  | 
|  | # Validate program parameters. | 
|  |  | 
|  | # Your validation code here. | 
|  |  | 
|  | if [ -z "${parm1}" ] ; then | 
|  | echo "**ERROR** You must provide..." >&2 | 
|  | return 1 | 
|  | fi | 
|  |  | 
|  | return 0 | 
|  |  | 
|  | } | 
|  | ############################################################################### | 
|  |  | 
|  |  | 
|  | ############################################################################### | 
|  | function mainf { | 
|  |  | 
|  | # We create a mainf for a couple of reasons: | 
|  | # The coding rules in a template are slightly different than for the true | 
|  | # mainline.  We wish to eliminate those inconsistencies.  Examples: | 
|  | # - The "local" builtin is allowed in functions but not in the mainline. | 
|  | # - It is good practice to have functions return 1 rather than exit 1. | 
|  | #   return is not valid in the mainline.  Again, we don't want to have to | 
|  | #   care when we code things about whether we are in the mainline or a | 
|  | #   function. | 
|  |  | 
|  | get_parms "$@" || return 1 | 
|  |  | 
|  | validate_parms || return 1 | 
|  |  | 
|  | # Your code here... | 
|  |  | 
|  | return 0 | 
|  |  | 
|  | } | 
|  | ############################################################################### | 
|  |  | 
|  |  | 
|  | ############################################################################### | 
|  | # Main | 
|  |  | 
|  | mainf "${@}" | 
|  | rc="${?}" | 
|  | exit "${rc}" | 
|  |  | 
|  | ############################################################################### |