Shell script question on variables


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Shell script question on variables
# 1  
Old 04-04-2009
Shell script question on variables

I have the following script that is supposed to calculate the runtime of the script as a whole (edited for brevity):
Code:
#!/bin/sh

# set endtime and print elapsed time
set starttime=`date +%s`
echo "Value of starttime: " $starttime
sleep 1
set endtime=`date +%s`
echo "Value of endtime: " $endtime
set elapsedtime=$endtime - $starttime
printf "Script took %02d:%02d:%02d to complete\n" $((elapsedtime/3600)) $((elapsedtime/60%60)) $((elapsedtime%60))

The output however is as follows:
Code:
# ./runtime.sh
Value of starttime: 
Value of endtime: 
Post installation took 00:00:00 to complete

Does this mean that the regular shell (ie not bash) does not recognise variables? What do I do to make this script work without resorting to bash?

Thanks in advance
# 2  
Old 04-04-2009
if its not bash don't use set command
try this
Code:
#!/bin/sh

# set endtime and print elapsed time
starttime=`date +%s`
echo "Value of starttime: " $starttime
sleep 1
endtime=`date +%s`
echo "Value of endtime: " $endtime
elapsedtime=$(($endtime - $starttime))
printf "Script took %02d:%02d:%02d to complete\n" $((elapsedtime/3600)) $((elapsedtime/60%60)) $((elapsedtime%60))

or try this also

Code:
awk -v start_time=$1 -v end_time=$2 'BEGIN{
if ( start_time !~ /^[0-9]/ || end_time !~ /^[0-9]/ )
usage(start_time,end_time)
split(start_time,T2,":")
split(end_time,T1,":")
start_seconds=T1[1]*60*60+T1[2]*60+T1[3]
end_seconds=T2[1]*60*60+T2[2]*60+T2[3]
if ( start_seconds > 86401 || end_seconds > 86401)
usage("out_off_range","")
elapsed_seconds=start_seconds-end_seconds
if( elapsed_seconds < 0 )
{elapsed_seconds=elapsed_seconds*-1
calculate(end_time,start_time,elapsed_seconds)}
else
calculate(start_time,end_time,elapsed_seconds)}
function calculate(start_time,end_time,elapsed_seconds){
HH=elapsed_seconds / 3600
MM=(elapsed_seconds % 3600) / 60
SS=elapsed_seconds % 60
printf  "TIME DIFFERENCE BETWEEN "start_time"(START TIME)-"end_time"(END TIME)--> +%02d:%02d:%02d\n",HH,MM,SS }
function usage(start_time,end_time){
if( start_time=="out_off_range" )
printf "TIME OUT OFF RANGE\n"
else
printf "INVALID TIME FORMAT "start_time" "end_time"\n"
printf "USAGE : time_diff.sh <HH:MM[:SS]> <HH:MM[:SS]>\n"
exit}'

# 3  
Old 04-04-2009
Thank you for your swift response. In your suggested code you may want to correct the typo: "out off range" should be replaced with "out of range" (one 'f').
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to create runtime variables based on the number of parameters passed in the script

Hi All, I have a script which intends to create as many variables at runtime, as the number of parameters passed to it. The script needs to save these parameter values in the variables created and print them abc.sh ---------- export Numbr_Parms=$# export a=1 while do export... (3 Replies)
Discussion started by: dev.devil.1983
3 Replies

2. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

3. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

4. Shell Programming and Scripting

General question about passing variables among shell scripts

So this is something I've been wondering how to do for a while. Suppose I have two shell scripts a.sh and b.sh script a does some function and outputs to a varable $x . I would then like to take $x into the second function, b.sh, and do a function on it and create some output. So how do you pass... (3 Replies)
Discussion started by: viored
3 Replies

5. HP-UX

Shell script variables

hi everyone, i'm writing shell script on hp-ux server that run by root user then (inside the script) su to database user and appl user..the reason for this script is to run some commands involve all users root and database and appl..anyway, variables when root in control is ok but when su, the... (1 Reply)
Discussion started by: neemoze
1 Replies

6. Shell Programming and Scripting

Variables in shell script

mysqldump --compact --add-drop-table -h192.168.150.80 -uroot -p somePass $combined | sed '/$combined/$table/g' | mysql $databaseThe sed part is not working from the above statement. The variables combined and table are already defined and instead of showing the actual variable, it is executing the... (4 Replies)
Discussion started by: shantanuo
4 Replies

7. Shell Programming and Scripting

Accessing variables of one shell script in another shell script

Hi All, I have a shell script called sample1.sh where I have 2 variables. Now I have another shell script called sample2.sh. I want the variables in sample1.sh to be available to sample2.sh. For example. In sample1.sh I am finding the sum of 2 numbers namely a and b. Now I want to access... (2 Replies)
Discussion started by: rsendhilmani
2 Replies

8. Shell Programming and Scripting

Accessing variables of one shell script in another shell script

I have a variable $exe in a shell script file a.sh which I need to access in another shell script file b.sh. How can I do that? :rolleyes: Thanks!! (2 Replies)
Discussion started by: looza
2 Replies

9. Shell Programming and Scripting

Awk/shell question: Read from file and assign to variables.

Is anyone able to help with writing a program that will do the following: 1. Read the contents of a file, line by line, and on each line, assign each of the two columns to a shell variable. 2. perform an action on the variables 3. Read the next line. Here is what I've gotten so far. ... (3 Replies)
Discussion started by: akbar
3 Replies

10. Shell Programming and Scripting

Shell Script Variables

HI guys I need to store the output of a sql query in a variable, can you tell me how to do that eg) select count(*) from s_escl_req $count = count(*) from s_escl_req how would i store the count(*) from the sql statement in a variable called $count. thanks (3 Replies)
Discussion started by: ragha81
3 Replies
Login or Register to Ask a Question