Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Recursion and shell functions
- X-seq: zsh-workers 17811
- From: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- To: DervishD <raul@xxxxxxxxxxxx>
- Subject: Re: Recursion and shell functions
- Date: Fri, 11 Oct 2002 10:02:37 +0100
- Cc: zsh-workers@xxxxxxxxxx
- In-reply-to: <20021010194154.GA10963@DervishD>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20021010194154.GA10963@DervishD>
- Sender: kiddleo@xxxxxxxxxx
On 10 Oct, you wrote:
> First of all, please excuse this a-bit-off-topic question, but I
> need to know if a feature available in zsh is portable.
>
> I need to do recursion in a directory tree and have two options;
> first one is doing a 'for' loop recursively calling the shell
> function which performs the actions:
> setting the permissions. This may seems unreasonable (two
> recursions...) but it's necessary since the recursive function call
> overwrites local variables, and I *cannot* set them as local, since
> 'local' is not a portable keyword :((( I need
If you know that you will at least have ksh88, you can get local
variables by using the function name { ... } syntax for functions and
using typeset to declare variables.
The bourne shell doesn't have local variables except for the
positional parameters and you can use them. I think this will be
portable:
func() {
set *
while [ "$1" ]; do
if [ -d "$1" ]; then
cd $1
func
cd ..
fi
shift
done
}
Something like find is going to be more reliable though.
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author