06-25-2009
Printing the sum of a numbers
Hi
I am writing a script that will produce the total of the digits with in the number. Here is the script.
[root@***/]-bash# cat Sum_Digits
if [ "$? -lt 1" ]
then
echo "You must enter at least two digits"
echo "If you enter more than two digits after the base line program this script will print the sum of the digits"
echo "For examples if you enter $0 456 then this script will print the sum of the three digits as 15 (4+5+6)"
fi
n=$1
sd=0
sum=0
while [ "$n" -gt "0" ]
do
sd=`expr $n % 10`
sum=`expr $sum + $sd`
n=`expr $n / 10`
done
echo "The sum of the number: $sum"
The script works fine when I mentioned the number following the base line program as shown below
[root@*** /]-bash# ./Sum_Digits 45667
You must enter at least two digits
If you enter more than two digits after the base line program this script will print the sum of the digits
For examples if you enter ./Sum_Digits 456 then this script will print the sum of the three digits as 15 (4+5+6)
The sum of the number: 28
But it fails when I just enter the script with out any number
[root@crjueyudev01 /]-bash# ./Sum_Digits
You must enter at least two digits
If you enter more than two digits after the base line program this script will print the sum of the digits
For examples if you enter ./Sum_Digits 456 then this script will print the sum of the three digits as 15 (4+5+6)
./Sum_Digits: line 12: [: : integer expression expected
The sum of the number: 0
I tried with out quotes and the error message comes back as usual
Thanks
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
i want to sum all nubers in one column. Example:
12.23
11
23.01
3544.01
I'm trying to do this in awk, but it doesn't work properly.
Seems like awk is summing only integers, for example:
12
11
23
3544
It cuts off numbers after dot.
I used this command:
akw /text/ file.txt |nawk... (1 Reply)
Discussion started by: iahveh
1 Replies
2. Shell Programming and Scripting
hello im looking for short way to sum numbers from stdout the way i found to do it is to long for me i wander if there is shorter way to do it
ok it 2 stage action
this will make the list of number in to file sum.txt
grep -c include *.c | awk '{l=split($0,a,":");print a;}' > sum.txt
this... (1 Reply)
Discussion started by: umen
1 Replies
3. Shell Programming and Scripting
I have a command which returns some numbers as follows:
$ls -l ${dbname}.ix* | awk '{print $5 }'
929792
36864
57344
73728
53248
114688
How can I find the sum of those numbers by piping this output into 'awk' or some other editor/command? Thanks a lot -A (3 Replies)
Discussion started by: aoussenko
3 Replies
4. Shell Programming and Scripting
cat *.out |grep "<some text>" | awk '{print $6}'
For ex,This will reutrn me
11111
22222
is it possible to add these two numbers in the above given command itself?I can write this to a file and find the sum.
But I prefer to this calculation in the above given line itself.
Any... (3 Replies)
Discussion started by: prasperl
3 Replies
5. Shell Programming and Scripting
I basically have a file where I had to do a bunch of greps to get a list of numbers
example: a file called numbers.txt
10000
10000
superman
10000
batman
10000
10000
grep '100' * |
10000
10000
10000
10000
10000 (2 Replies)
Discussion started by: zerofire123
2 Replies
6. Shell Programming and Scripting
Hi All,
I need to print the sum of numbers from different files.
Input files:
file1.out
10
20
30
file2.out
10
20
30 (5 Replies)
Discussion started by: saint2006
5 Replies
7. Shell Programming and Scripting
I have files :
cat file1
15
88
44
667
33
4cat file2
445 66 77 3 56 (12 Replies)
Discussion started by: Natalie
12 Replies
8. Shell Programming and Scripting
Hi
i have to calculate some numbers, column by column.
Herfore i used a for-loop..
for i in {4..26};do awk -F"," '{x'$i'+=$'$i'}END{print '$i'"\t" x'$i'}' file.tmp;done
----- printout -----
4 660905240
5 71205272
6 8.26169e+07
7 8.85961e+07
8 8.60936e+07
9 7.42238e+07
10 5.6051e+07... (7 Replies)
Discussion started by: IMPe
7 Replies
9. Shell Programming and Scripting
Need help in coding:
File with several rows incl. numbers like
1 2 3 4
5 6 7 8
...
How can i build the sum of each row seperately?
10
26
...
Thx for help.
Please use CODE tags as required by forum rules! (13 Replies)
Discussion started by: smitty11
13 Replies
10. UNIX for Beginners Questions & Answers
I need help with this assignment. I'm very new to using UNIX/LINUX, and my only previous experience with programing anything is using python.
We are writing scripts using vim, and this one I'm stumped on.
"Write a shell script that finds and display the sum of even positive integers from 0 to... (5 Replies)
Discussion started by: Nastybutler
5 Replies
LEARN ABOUT XFREE86
checkbashisms
CHECKBASHISMS(1) General Commands Manual CHECKBASHISMS(1)
NAME
checkbashisms - check for bashisms in /bin/sh scripts
SYNOPSIS
checkbashisms script ...
checkbashisms --help|--version
DESCRIPTION
checkbashisms, based on one of the checks from the lintian system, performs basic checks on /bin/sh shell scripts for the possible presence
of bashisms. It takes the names of the shell scripts on the command line, and outputs warnings if possible bashisms are detected.
Note that the definition of a bashism in this context roughly equates to "a shell feature that is not required to be supported by POSIX";
this means that some issues flagged may be permitted under optional sections of POSIX, such as XSI or User Portability.
In cases where POSIX and Debian Policy disagree, checkbashisms by default allows extensions permitted by Policy but may also provide
options for stricter checking.
OPTIONS
--help, -h
Show a summary of options.
--newline, -n
Check for "echo -n" usage (non POSIX but required by Debian Policy 10.4.)
--posix, -p
Check for issues which are non POSIX but required to be supported by Debian Policy 10.4 (implies -n).
--force, -f
Force each script to be checked, even if it would normally not be (for instance, it has a bash or non POSIX shell shebang or appears
to be a shell wrapper).
--extra, -x
Highlight lines which, whilst they do not contain bashisms, may be useful in determining whether a particular issue is a false posi-
tive which may be ignored. For example, the use of "$BASH_ENV" may be preceded by checking whether "$BASH" is set.
--version, -v
Show version and copyright information.
EXIT VALUES
The exit value will be 0 if no possible bashisms or other problems were detected. Otherwise it will be the sum of the following error val-
ues:
1 A possible bashism was detected.
2 A file was skipped for some reason, for example, because it was unreadable or not found. The warning message will give details.
SEE ALSO
lintian(1).
AUTHOR
checkbashisms was originally written as a shell script by Yann Dirson <dirson@debian.org> and rewritten in Perl with many more features by
Julian Gilbey <jdg@debian.org>.
DEBIAN
Debian Utilities CHECKBASHISMS(1)