Query - date command

Hi,

I am trying to capture the total run time of a script which contains SQL's by providing date command in top & bottom, it displaying both the times same in top & bottom.However the time in the sql connection is different.Please help.

OS - LINUX
Shell - ksh

printf "Script Started at $date" >> $LOGFILE
sqlplus userid/pwd test1.sql
.
.
.
sqlplus userid/pwd testn.sql
printf "Script Ended at $date" >> $LOGFILE

It seems you're storing the date in a variable somewhere in your script which is fine, however, if you need a start and end date then you will need to store the date command again.

$date=$(date)
printf "Script Started at $date" >> $LOGFILE
sqlplus userid/pwd test1.sql
.
.
.
sqlplus userid/pwd testn.sql
$date=$(date)
printf "Script Ended at $date" >> $LOGFILE

You could use:

printf 'Script Started at %s\n' "$( date )" >> $LOGFILE
sqlplus userid/pwd test1.sql
.
.
.
sqlplus userid/pwd testn.sql
printf 'Script Ended at %s\n' "$( date )" >> $LOGFILE

Note that if you add set time on timing on at the top of your SQL commands,
you'll get the current and the elapsed time in your sqlplus output.

You can also use time command to print elapsed time for sqlplus utility:

time sqlplus username/password@instance