[prog] Returning a string from a function, in bash

Jimen Ching jching at flex.com
Thu Apr 15 15:58:19 EST 2004

On Thu, 15 Apr 2004, Riccarda Cassini wrote:
>My initial attempt to achieve the same effect in shell syntax was:
>  myfunc ()
>  {
>    local arg=$1
>    return "arg was: $arg"
>  }
>  par=test
>  var=myfunc($par)

A few corrections:

1.  The return command takes an integer.  So you can never 'return' a
string.  So the correct way to assign a string from a function is to use
an 'echo' like you found out.

2.  Calling a function is done with:

	func var1 var2 var3

There are no parentheses.

3.  To save the return value (an integer), you assign the result
environment variable:

	func var

This assignment must be done before any other command, because the next
command will update '$?'.

Hope this helps.

Jimen Ching (WH6BRR)      jching at flex.com     wh6brr at uhm.ampr.org

More information about the Programming mailing list