If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 
Go Back  dBforums > Data Access, Manipulation & Batch Languages > Unix Shell Scripts > How to call a function

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 04-17-04, 00:01
sachin_mt sachin_mt is offline
Registered User
 
Join Date: Jan 2003
Posts: 106
How to call a function

Hi,

Can anyone give me a simple example,of how to pass a value to a function and how to use a value returned from the function.

I also need to know of how to write a function and return value from it.

For example I want to write a function which checks for special characters then how should I write it.
__________________
Sachi
Reply With Quote
  #2 (permalink)  
Old 04-17-04, 05:39
aigles aigles is offline
Registered User
 
Join Date: Jan 2004
Location: Bordeaux, France
Posts: 319
Quote:
From bash man pages :
Shell functions are a way to group commands for later execution
using a single name for the group. They are executed just like a
"regular" command. When the name of a shell function is used as a
simple command name, the list of commands associated with that function
name is executed. Shell functions are executed in the current shell
context; no new process is created to interpret them.

Functions are declared using this syntax:
[ `function' ] NAME () { COMMAND-LIST; }

This defines a shell function named NAME. The reserved word
`function' is optional. If the `function' reserved word is supplied,
the parentheses are optional. The BODY of the function is the
COMMAND-LIST between { and }. This list is executed whenever NAME is
specified as the name of a command. The exit status of a function is
the exit status of the last command executed in the body.
Note that for historical reasons, the curly braces that surround the
body of the function must be separated from the body by `blank's or
newlines. This is because the braces are reserved words and are only
recognized as such when they are separated by whitespace. Also, the
COMMAND-LIST must be terminated with a semicolon or a newline.

When a function is executed, the arguments to the function become
the positional parameters during its execution (*note Positional
Parameters::). The special parameter `#' that expands to the number of
positional parameters is updated to reflect the change. Positional
parameter `0' is unchanged. The `FUNCNAME' variable is set to the name
of the function while the function is executing.

If the builtin command `return' is executed in a function, the
function completes and execution resumes with the next command after
the function call. When a function completes, the values of the
positional parameters and the special parameter `#' are restored to the
values they had prior to the function's execution. If a numeric
argument is given to `return', that is the function's return status;
otherwise the function's return status is the exit status of the last
command executed before the `return'.

Variables local to the function may be declared with the `local'
builtin. These variables are visible only to the function and the
commands it invokes.

Functions may be recursive. No limit is placed on the number of
recursive calls.
The following function display its arguments and completes with status 1 if no called without argument.
Code:
function DisplayArgs {
   for arg ; do
      echo "Arg: $arg"
   done
   if [ $# -eq 0 ]
      then return 1
      else return 0
   fi
}

DisplayArgs "$@"
if [ $? -eq 0 ]
then
   # Proceed arguments
else
   echo "Argument(s) missing"
fi

The following function return a string converted to upper case :
Code:
function ToUppercase {
   echo "$*" | tr '[a-z]' '[A-Z]'
}

str="Bonjour"
ToUppercase $str          # Display uppercase string
upper=$(ToUppercase $str) # Get uppercase string
__________________
Jean-Pierre.
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On