| #!/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}" |
| |
| ############################################################################### |