Sponsored Content
Top Forums Shell Programming and Scripting Problem with Recursive function Post 302105613 by hegemaro on Saturday 3rd of February 2007 09:24:55 AM
Old 02-03-2007
CPU & Memory

zazzybob's solution is an elegant and simple solution.

In response to recursion within a Korn shell function, there are two points to consider. All variables, including the current working directory, are global unless specifically defined with the function which then makes them local within the function.
Code:
typeset FILENAME=/etc/hosts

Function ()
{
    FILENAME=/etc/resolv.conf
    echo $FILENAME
}

echo $FILENAME
Function
echo $FILENAME

would produce

/etc/hosts
/etc/resolv.conf
/etc/resolv.conf

However,

Code:
typeset FILENAME=/etc/hosts

Function ()
{
    typeset FILENAME

    FILENAME=/etc/resolv.conf
    echo $FILENAME
}

echo $FILENAME
Function
echo $FILENAME

would produce
/etc/hosts
/etc/resolv.conf
/etc/hosts

A quick and dirty way to make variables local to the function INCLUDING the working directory is to execute the function in its own shell by placing parenthesis within the function brackets. The function will get its own copy of the environment when called and any changes, including the directory, to that environment will not be reflected in the calling script which is its own function.

Code:
typeset FILENAME=/etc/hosts

Function ()
{ (
    FILENAME=/resolv.conf
    echo $FILENAME
) }

echo $FILENAME
Function
echo $FILENAME

would produce
/etc/hosts
/etc/resolv.conf
/etc/hosts

Last edited by hegemaro; 02-03-2007 at 10:41 AM..
 

10 More Discussions You Might Find Interesting

1. Programming

recursive function

Hi everyone, i need your input on this. We can express a function recursivly like this A(n) = (2 n = 0 5 n = 1 A(n − 1) + A(n − 2) % 47 n > 1 How would i go about constructing a recursive function for this?... (1 Reply)
Discussion started by: bebop1111116
1 Replies

2. Shell Programming and Scripting

Script problem due to recursive directories Help please

Hello everyone , I am looking for a better solution then the one I have created for the my Task The task is: Create an automated script that will check for Uploads in a specified Directory and move them to another specified Directory if the files are completely uploaded. Files are FTP'd to... (2 Replies)
Discussion started by: robertmcol
2 Replies

3. Shell Programming and Scripting

Recursive function call problem

This is shell script I have made to lists out directory contents and filenames for any given directory (without using ls command). There is some problem in dirfunc function call which I have marked 1 is not working. Can anybody suggest what is the problem there and how should I correct it. ... (2 Replies)
Discussion started by: netresearch
2 Replies

4. Shell Programming and Scripting

Recursive function in unix

Can someone tell me, how do i write a recursive code using shell ( eg like 'for' loop in C) which outputs the record to a database table as one row per iteration? (7 Replies)
Discussion started by: goutam_igate
7 Replies

5. Shell Programming and Scripting

Not able to store the results of perl recursive function when applied under for loop

Hi Perl Gurus , need URGENT HELP PLEASE !!!!! I have one recursive Perl function which takes path of any directory as argument and returns array containing all the sub folders inside it recursively. Now the problem is that it works well if i use it with one time but the problem is that when... (0 Replies)
Discussion started by: anthriksh2000
0 Replies

6. Shell Programming and Scripting

Recursive function and arrays

I have the following function in a bash script that fails to return the sorted array. I think the problem lies in the recursion not correctly passing the arrays, but I can't tell what I'm doing wrong. Anyone see the problem? function quicksort () { local array=( `echo "$1"` ) local... (7 Replies)
Discussion started by: tkg
7 Replies

7. Shell Programming and Scripting

AWK Problem in recursive function

Hi, I have a file like this SPF_HC00001|iCalcular_Monto_Minimo|--->|SPF_HC00028|pstcObtener_Monto_Minimo SPF_HC00004|iCalcular_Incrementos|--->|SPF_HC00032|pstcObtener_Num_Incrementos SPF_HC00005|iCalcular_Articulo_167_Reformado|--->|SPF_HC00031|pstcObtener_Por_CB_Inc... (2 Replies)
Discussion started by: kcoder24
2 Replies

8. Shell Programming and Scripting

perl recursive function issue

I am facing some problem in perl recurssive function function my @array_parent = (Some inegers); my $outputfile = 'output.txt'; my $master_file = 'master.txt'; open (MASTER,"$>>master.txt"); foreach my $child (@array_parent){ my $line = `grep "$child" "$outputfile"`; ... (1 Reply)
Discussion started by: pritish.sas
1 Replies

9. Shell Programming and Scripting

Run recursive function with variables over SSH

Hi, I don't know if you can help or if this is even possible, but I am trying to run the following function over an ssh and (depending on the itteration I choose) keep getting unexpected token or undefined symbol errors. The function is: killtree() { typeset parent=$1 typeset child... (1 Reply)
Discussion started by: RECrerar
1 Replies

10. Programming

recursive function

Hello forum members, Please wirte a sample program for print the 1 - 100 and 100 -1 using recursive function. Thanks & regards Siva Rangnanath (2 Replies)
Discussion started by: workforsiva
2 Replies
GCSTAR(1)							Linux User's Manual							 GCSTAR(1)

NAME
GCstar - Personal collection manager SYNOPSIS
gcstar [-u UPDATE-OPTIONS] [-x EXECUTE-OPTIONS] [FILENAME] DESCRIPTION
GCstar is a Gtk2 program used to manage personal collections. OPTIONS
Without any option, it will open FILENAME if specified or the previously opened file. There are also two groups of options. UPDATE-OPTIONS -u, --update Tell GCstar to look for available updates -a, --all Update all components -c, --collection Update collection models -w, --website Update plugins to download information -i, --import Update plugins to import data -e, --export Update plugins to export data -l, --lang Update translations -n, --noproxy Don't ask for a proxy EXECUTE-OPTIONS -x, --execute Enter non-interactive mode -c, --collection MODEL Specify the collection type -w, --website PLUGIN Specify the plugin to use to download information -i, --import PLUGIN Specify the plugin to use to import a collection -e, --export PLUGIN Specify the plugin to use to export the collection -f, --fields FILENAME File containing fields list to use for import/export -o, --output FILENAME Write output in FILENAME instead of standard output --download TITLE Search for the item with TITLE as name --importprefs PREFERENCES Preferences for the import plugin --exportprefs PREFERENCES Preferences for the export plugin Preferences for import/export plugins are specified using this schema Key1=>Value1,Key2=>Value2 ENVIRONMENT
HOME Used to define following variables if needed XDG_CONFIG_HOME Where configuration files should be stored. If not defined: $HOME/.config XDG_DATA_HOME Where some data will be stored. If not defined: $HOME/.local/share BUGS REPORTING
To report bugs, please use this forum: http://forums.gcstar.org/viewforum.php?id=4 AUTHORS
Tian <tian@c-sait.net> http://www.gcstar.org/ GCstar 17 August 2006 GCSTAR(1)
All times are GMT -4. The time now is 11:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy