There are 2 simple options:
1. If the number of params are not too many just pass them on command line:
#/bin/bash
APPLICATION=$1
LOCALHOST=`hostname -s`
REMOTEHOST=$2
WEBDATA=$3
SQLUSER=$4
SQLPASS=$5
SQLDB=$6
# ---------------------------------------------
#run like this:
backup.sh appName remotehost webdataLocation usr pswd db
You name make them named params using the getopt . Google for more examples.
2. Use the file as you mentioned. Usually I would go with the property file syntax.
key=value
In this case you can parse the file like this. An except from one of my scripts:
#!/bin/bash
#
# Sets internal variables based on <config file> contents.
# $1 - <config file>
# returns nothing, sets all variables.
#
process_TC_config_file() {
_logecho "Entering _process_TC_config_file(): \$* = $*"
_logecho "TC_CONFIG_FILE=$TC_CONFIG_FILE"
local NEW_INPUT_FILE=$TC_DIR/new_config
cp $1 $NEW_INPUT_FILE
# remove leading spaces/tabs and comments
sed -i '/^$/d;s/^[ \t]+//g;/^#/d' $NEW_INPUT_FILE
# work around for "read". It returns non-zero for last line in file.
# So if the last line contains valid input it will be lost.
echo "" >> $NEW_INPUT_FILE
while read one_line
do
if [ ! -z "$(echo $one_line | grep ^ADAPTATIONS)" ]; then
ADAP_LIST=`echo $one_line | sed 's/ADAPTATIONS=//'`
elif [ ! -z "$(echo $one_line | grep ^NUMBER_OF_HOURS_OF_DATA_LOADING)" ]; then
NUMBER_OF_HOURS_OF_DATA_LOADING=`echo $one_line | sed 's/NUMBER_OF_HOURS_OF_DATA_LOADING=//'`
elif [ ! -z "$(echo $one_line | grep ^ORACLE_MEM_SET_SIZE_PERCENT)" ]; then
ORACLE_MEM_SET_SIZE_PERCENT=`echo $one_line | sed 's/ORACLE_MEM_SET_SIZE_PERCENT=//'`
elif [ ! -z "$(echo $one_line | grep ^DB_ARCHIVE_LOGGING_DIR)" ]; then
DB_ARCHIVE_LOGGING_DIR=`echo $one_line | sed 's/DB_ARCHIVE_LOGGING_DIR=//'`
elif [ ! -z "$(echo $one_line | grep ^WEBSPHERE_MIN_HEAP_SIZE)" ]; then
WEBSPHERE_MIN_HEAP_SIZE=`echo $one_line | sed 's/WEBSPHERE_MIN_HEAP_SIZE=//'`
elif [ ! -z "$(echo $one_line | grep ^WEBSPHERE_MAX_HEAP_SIZE)" ]; then
WEBSPHERE_MAX_HEAP_SIZE=`echo $one_line | sed 's/WEBSPHERE_MAX_HEAP_SIZE=//'`
elif [ ! -z "$(echo $one_line | grep ^OES_LOG_FILE_SIZE_LIMIT_BYTES)" ]; then
OES_LOG_FILE_SIZE_LIMIT_BYTES=`echo $one_line | sed 's/OES_LOG_FILE_SIZE_LIMIT_BYTES=//'`
elif [ ! -z "$(echo $one_line | grep ^OES_LOG_FILE_NUMBER_LIMIT)" ]; then
OES_LOG_FILE_NUMBER_LIMIT=`echo $one_line | sed 's/OES_LOG_FILE_NUMBER_LIMIT=//'`
elif [ ! -z "$(echo $one_line | grep ^WAS_LOG_FILE_SIZE_LIMIT_MB)" ]; then
WAS_LOG_FILE_SIZE_LIMIT_MB=`echo $one_line | sed 's/WAS_LOG_FILE_SIZE_LIMIT_MB=//'`
elif [ ! -z "$(echo $one_line | grep ^WAS_LOG_FILE_NUMBER_LIMIT)" ]; then
WAS_LOG_FILE_NUMBER_LIMIT=`echo $one_line | sed 's/WAS_LOG_FILE_NUMBER_LIMIT=//'`
elif [ ! -z "$(echo $one_line | grep ^XXX)" ]; then
# this is just a template to introduce new params. Wont ever be executed.
XXX=`echo $one_line | sed 's/XXX=//'`
else
_logecho "Line ignored: $one_line"
fi
done < $NEW_INPUT_FILE
rm $NEW_INPUT_FILE
}
# --------main------------
if [ !-r $1 ]; then
// err
usage_and_exit(1);
fi
process_TC_config_file $1
#... rest of the script
Example contents of the config file. #######################################################
# MANDATORY
#######################################################
# NAC trail adaptations
#ADAPTATIONS=com.nsn.brm-1.0 com.nsn.nthlrfe-4.5EP4
# NAC full load adaptations
ADAPTATIONS=NOKIPA-A8 NOKMGW-U4.2EP NOKMSS-M16.0IP
NUMBER_OF_HOURS_OF_DATA_LOADING=36
#######################################################
# Oracle Configurations -- OPTIONAL
#######################################################
# Oracle's memory limit in % of total available RAM.
# Default 45.
ORACLE_MEM_SET_SIZE_PERCENT=45
# Directory where archive logs are stored.
# Default /d/db/archivelog.
DB_ARCHIVE_LOGGING_DIR=/d/db/archivelog
#################################################################
# WAS (WebSphere Application Server) configurations -- OPTIONAL
#################################################################
# Min/Max of WAS heapsize. Can't set only one. Either both or none.
# Default is to make no change to default WAS configuration.
#WEBSPHERE_MIN_HEAP_SIZE=768
#WEBSPHERE_MAX_HEAP_SIZE=6096
# Error / Output files: Size / file and total number of history files to be kept.
# Default 2 & 50 respectively.
WAS_LOG_FILE_SIZE_LIMIT_MB=2
WAS_LOG_FILE_NUMBER_LIMIT=50
#######################################################
# OES configurations -- OPTIONAL
#######################################################
# Log / Trace files: Size / file and total number of history files to be kept.
# Default 3145728 (3MB) & 50 respectively.
OES_LOG_FILE_SIZE_LIMIT_BYTES=3145728
OES_LOG_FILE_NUMBER_LIMIT=50
HTH