return value of a function


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting return value of a function
# 1  
Old 07-05-2009
return value of a function

I have write a shell function to get the maximum of a vector.
However, the returned value from the function is not always
the correct one.

Here is the script:

Code:
maxval()
{
local max j i size arrval
size=$1 ; shift
max=-999999999
i=0
while [ $i -lt $size ]
do
 arrval="$1"
 if [ $max -le $arrval ]
 then
  max=$arrval
 fi
 shift
 let i=i+1
done
mvvv=$max
return $max
#mvvv is a global variable
}

#I am accesing mavval via:

Code:
maxval `echo ${#ind21[@]} ${ind21[@]}`

#If I try:
Code:
max2=$mvvv

# transfering via mvvv ; not sure $? does not work.....
# it works

#If I try:
Code:
max2=$?

#does not always work.

The question is: Why I am not getting the right answer when I am transfering the output of maxval function via returned $? ?

Last edited by vidyadhar85; 07-05-2009 at 10:21 PM.. Reason: code tags added
# 2  
Old 07-06-2009
The return value is effectively truncated into an unsigned short. That is, 0 to 255. The two's complement logic means that -1 gets turned into 255. A return of 256 becomes 0.
# 3  
Old 07-06-2009
Then how can I return a longint (signed or unsigned) from a function via function argument rather then global variable?

For example:
return `echo $var`
still won't work for numbers larger than 255.
# 4  
Old 07-06-2009
you output it to standard out, and "Catch" the output with the `` method you used above:
Code:
sub f() { let x=$1; let x=x+255; echo $x }

output=`f 2`

# 5  
Old 07-06-2009
return is designed to return a status, i.e. the function succeeded or failed.

Use echo in the function instead, functions like commands output their results on stdout under Unix.

Edit: Otheus was slightly faster Smilie
# 6  
Old 07-06-2009
Thanks a lot. It worked.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Function - Make your function return an exit status

Hi All, Good Day, seeking for your assistance on how to not perform my 2nd, 3rd,4th etc.. function if my 1st function is in else condition. #Body function1() { if then echo "exist" else echo "not exist" } #if not exist in function1 my all other function will not proceed.... (4 Replies)
Discussion started by: meister29
4 Replies

2. Shell Programming and Scripting

Return: can only `return' from a function or sourced script

Not sure where the problem is. I can run the script without any issue using the following command. . /opt/app/scripts/cdc_migration.sh But it fails with the below error when I try it this way /opt/app/scripts/cdc_migration.sh /opt/app/scripts/cdc_migration.sh: line 65: return: can only... (1 Reply)
Discussion started by: svajhala
1 Replies

3. Programming

C function to start process but to return right away

Hello, I am using C on a Centos box with gcc as the compiler. I want a function to do something, them make an http request to some server (most probably using curl but suggestions are welcome) and return right away without waiting for the server's answer on that request. What should I use... (8 Replies)
Discussion started by: JCR
8 Replies

4. Shell Programming and Scripting

getting return value from oracle function

So, in Oracle (11gR2) on aix I have a function like: CREATE OR REPLACE function COMMON.t2(var1 in varchar2, vari in number,var2 in out number) return number as begin insert into korisnik_temp(kor_inicia, kor_opisno) values(1, var1); var2:=0; return var2; exception when... (12 Replies)
Discussion started by: bongo
12 Replies

5. Shell Programming and Scripting

Return a value from called function to the calling function

I have two scripts. script1.sh looks -------------------------------- #!/bin/bash display() { echo "Welcome to Unix" } display ----------------------------- Script2.sh #!/bin/bash sh script1.sh //simply calling script1.sh ------------------------------ (1 Reply)
Discussion started by: mvictorvijayan
1 Replies

6. Shell Programming and Scripting

return in function

I am using ksh. I want to know how can we make any function to return string or double value. I dont want to use the global variables. (5 Replies)
Discussion started by: PRKS
5 Replies

7. Shell Programming and Scripting

need to return value from function

how to return value from function and print from main program??? And also I need to return true or false... Is it possible? (5 Replies)
Discussion started by: darshakraut
5 Replies

8. Shell Programming and Scripting

function return array

Hi all I would like to know if there is a way to return an array for a function. As I know function can return all the contents in an array, I want to return an array type. (6 Replies)
Discussion started by: dophine
6 Replies

9. Shell Programming and Scripting

return value of a function

Hi I have a doubt in the way the variables inside a function are treated . if a function is called from the main script directly, the variables inside them act as global variables. however if the return value of the function is stored to some other variable in the main script as shown,... (3 Replies)
Discussion started by: prez
3 Replies
Login or Register to Ask a Question