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###############################################################################
12function get_parms {
13
14  # Get program parms.
15
16  parm1="${1}" ; shift
17
18  return 0
19
20}
21###############################################################################
22
23
24###############################################################################
25function 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###############################################################################
43function 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###############################################################################
74