Working out percentage in shell script

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Working out percentage in shell script
# 1  
Old 01-29-2017
Working out percentage in shell script

Hi All,
I currently have a shell script which is pulling multiple counters from various sources. Due to the counters being cumulative counters I've got some code to work out the delta from the last reading and current which is working fine.

The problem i have now is being able to work out the success rate as a percentage.

Normally I would just take success and divide by attempts then multiply this by 100 which would give my success rate at a percentage (i'd like it to 2 decimal places).

How can this be done in a shell script ?

Any help is apprecaited as always.

Thanks
# 2  
Old 01-29-2017
Here are some options to do so:

shell - How to do integer & float calculations, in bash or other languages/frameworks? - Unix & Linux Stack Exchange

Last edited by stomp; 01-30-2017 at 05:23 AM..
# 3  
Old 01-29-2017
code i've tried

What am i doing wrong ?

Code:
sum1=$((add1 + add2))
echo "Success = $sum1"
sum2=$((add3 - add4))
echo "Attempts = $sum2"
final="scale=4; ($sum1 / $sum2 ) * 100" | bc
echo " Success rate = $final"

No percentage is worked out, it only is printing Sum1 and Sum2 values.

Code:
Success = 7513
Attempts - custom = 9150
Success Rate =

what i'm expecting is the below output.

Code:
Success = 7513
Attempts - custom = 9150
Success Rate = 82.10

# 4  
Old 01-29-2017
You need to use "command substitution" (c.f. man bash). Try
Code:
final=$( echo "scale=4; ($sum1 / $sum2 ) * 100" | bc)

or, if you have a recent shell, a "here string"
Code:
 bc <<< "scale=4; ($sum1 / $sum2 ) * 100"

This User Gave Thanks to RudiC For This Post:
# 5  
Old 01-29-2017
2 decimal places

Thanks RudiC, Do you know how i can round it up ?
# 6  
Old 01-29-2017
This should help you after reading the thread...

[awk] rounding a float number?
# 7  
Old 01-29-2017
Round it up? Means WHAT? How about scale=2?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. HP-UX

Shell /awk script for Percentage

having two columns, A and B.. i need to add another column C in a file and calculate the percentage based on the column A and B. (COLUMN B/ COLUMN A *100) . "|" is delimiter separating the A and B.. need C column with the percentage value. Thanks for your help 100|50 |50% ... (6 Replies)
Discussion started by: kartikirans
6 Replies

2. Shell Programming and Scripting

Working out percentage of memory utilization

Hi there I am middle of writing a script to allow me to see the % of the memory which is being used. When I submit my script I don't get any errors but I just get a blank output. Any pointers? available=`free -m | grep available` if then ... (7 Replies)
Discussion started by: simpsa27
7 Replies

3. Shell Programming and Scripting

Cp not working in shell script but running perfectly from shell

Dear All, I have script. Dest="" IFS=' ' for translation in $(echo $MY_MAP) do t1=$(echo $translation | cut -d"=" -f1) t2=$(echo $translation | cut -d"=" -f2| cut -d"," -f1) if then Dest=$UNX/$u_product_path/$u_study_path/$UNXTR/$t2 break; ... (4 Replies)
Discussion started by: yadavricky
4 Replies

4. Shell Programming and Scripting

Shell script not working

. /home/bscs6/.kshrc set -x monthy=`date +%m` daty=`date +%d` yeary=`date +%Y` cd /home/bscs6/scripts sqlplus sysadm/sysadm@SEGODI @lms_profile.sql mv /home/bscs6/scripts/lmsprofile.log /home/bscs6/scripts/LMS_PROFILE_DUMP_$daty$monthy$yeary.txt gives me the error below: LMS_PROFILE.sh:... (3 Replies)
Discussion started by: malefho
3 Replies

5. UNIX for Dummies Questions & Answers

Percentage / Multiplication in Shell Script

Hello, I am trying to compute the percentage in a script as shown below: PerCover=`echo "scale=2 ; 100 \* ($InputCover/$Total)" | bc` However the PerCover value is blank/null. What do I need to do differently? Thanks for your input! ~Guss (1 Reply)
Discussion started by: Gussifinknottle
1 Replies

6. Shell Programming and Scripting

expect script inside shell script not working.

Shell Scipt: temp.sh su - <$username> expect pass.exp Expect script: pass.exp #!/usr/bin/expect -f # Login ####################### expect "Password: " send "<$password>\r" it comes up with Password: but doesnt take password passed throguh file. (2 Replies)
Discussion started by: bhavesh.sapra
2 Replies

7. Programming

Shell script to find Percentage?

Hi all, I havea log of data.log bear,10000,white bear,5000,black chicken,2000,white chicken,4000,yellow chicken,3000,black lion,6000,yellow lion,1000,white How can we have shell script to get the percentage of each animals? Thanks. (8 Replies)
Discussion started by: sabercats
8 Replies

8. Shell Programming and Scripting

Script shell, how to calculate percentage?

hello, please can you help me. jj and kk are two numbers which are the result of an sql program. I would like to calculate the ratio jj/kk*100. I have done this: ratio=$((jj/kk * 100)) or ratio=`expr $jj \/ expr $kk) but the result is 0 What can i do? Thanks for help. (3 Replies)
Discussion started by: likeaix
3 Replies

9. UNIX for Dummies Questions & Answers

Working out the percentage between two values

Hi there, I am totally new to Unix, I am trying to work out the percentage between two values in a ksh shell script and assign the result to a variable. Value1=577 Values2=244 So the calculation would be as follows: ((Value1 - Value2) / Value1) * 100 How would I be able to achieve... (2 Replies)
Discussion started by: NextLevelAndi
2 Replies

10. Shell Programming and Scripting

Perl script 'system' linking to local shell script not working

Trying to figure out why this works: printpwd.pl #!/usr/bin/perl use CGI::Carp qw( fatalsToBrowser ); print "Content-type: text/html\n\n"; $A = system("pwd"); $A = `pwd`; print "$A\n"; ^^actually that works/breaks if that makes any sense.. i get the working directory twice but when... (5 Replies)
Discussion started by: phpfreak
5 Replies
Login or Register to Ask a Question