GETOPTS in CASE statement
I need to write a one script which does a number functions with these options in any order.
backup *default file to be restored (no options)
backup *change default config file location
backup *errorlogging only
backup *fullerrorlogging
restore *default last backup restored
restore *restore by filename
restore *list all backups
restore *list backups by name
restore *list contents of last backup
restore *change default restore location to new one
restore *carry out diff on tar contents
My solution is to write functions for each task in script but how should I parse the options to the script - was thinking of the case within a case below - is this the best way to go - will I have problems? is there an easier way?
[/code]
#!/bin/bash
set -xv
#######################################
# CASE test script #
#######################################
while getopts "br:aeh" OPTION; do
case "$OPTION" in
b)
echo "backup_action"
;;
r)
case "${OPTARG}" in
name)
echo "restore_filename"
;;
latest)
echo "restore_latest"
;;
listall)
echo "listall"
;;
project)
echo "project_timestamp"
;;
lastcontents)
echo "last_contents"
;;
directory)
echo "RESTORE_FILES_DIRECTORY="
;;
compare)
echo "Compare"
;;
esac;;
f)
echo "LOGFLAG=false"
echo "FULL_LOGGING=true"
echo "logging_option"
;;
e)
echo "LOGFLAG=false"
echo "FULL_LOGGING=false"
echo "logging_option"
;;
h)
echo " help_action"
;;
esac
done ########## WAS MISSING!!!!
[code]
Is this the best way to go?
Also how would I offer only one option as in backup or restore and fulllogging or errorlogging?
Last edited by Batistuta_g_2000; 03-13-2013 at 05:39 AM.
|