03-29-2007
No support for Recusrsive functions in Shell scripting
Hello,
As far as i know, recursive functions are not supported in Shell Scripting.
Anyways, the following script will help you to get the factorial of a number.
#! /bin/sh
echo "Enter a number: "
read num
i=2
res=1
if [ $num -ge 2 ]
then
while [ $i -le $num ]
do
res=`expr $res \* $i`
i=`expr $i + 1`
done
fi
echo "Factorial of $num = $res"
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm using the UNIX csh and i wish to use recursion to nav my way up (or down as it is) a given folder.
My little test script is called "r" and takes a folder as argv (or $1)
#!/bin/tcsh -f
set allFiles = `ls -A $argv`
cd $argv
while ($#allFiles)
if (-d... (1 Reply)
Discussion started by: gsjf
1 Replies
2. Shell Programming and Scripting
I am running a korn shell script which has a recursive function.
The script ran for 117 iterations and ended up with the following error
"recursion too deep".
what should be done to avert this?
Thanks in advance
Swamy
p.s. I am on UNIX MPRAS V4 (3 Replies)
Discussion started by: swamy455
3 Replies
3. Programming
I want to halt a tail recursive function after certain validation. I want to come out of entire recursion without unwinding phase. How can i achieve that . The coding is done in C language. (5 Replies)
Discussion started by: joshighanshyam
5 Replies
4. Shell Programming and Scripting
Hi Guys,,
I tried to create a recursive function in unix.
The following is the code.
#/bin/sh
function(){
n=$1;
if ; then
out=1;
echo "inside if for 0";
else
out = `$n * function "$n-1"`;
echo "inside if for $n-1;
fi (3 Replies)
Discussion started by: mac4rfree
3 Replies
5. Programming
Hi,
Question: how come the output is like that? Can explain to me abit. I am learning C.
Thanks!
#include <stdio.h>
#include <string.h>
void printit(char line_of_char, int index);
int main()
{
char line_of_char;
int index = -1;
strcpy(line_of_char, "This is a string.");
... (5 Replies)
Discussion started by: seede
5 Replies
6. Shell Programming and Scripting
Can someone please explain me why the following script calls it self recursively:
#!/bin/bash
echo Called
$0
while this not:
#!/bin/bash
echo Called
$($0)
Thanks (6 Replies)
Discussion started by: superpointer
6 Replies
7. UNIX for Advanced & Expert Users
In the following command:
find / -ctime +3 -exec rm -R {}\;
how is the recursion list built for the actual rm ?
F'rinstance; I had a case where a user typed this as root using '/' instead of '.' so everything in the root level was going to be traversed. They hit <ctrl>C before too much was... (5 Replies)
Discussion started by: port43
5 Replies
8. Shell Programming and Scripting
Not sure how to ask this question. I want concatenate strings and variable recursively into new variable. For example:
infile01=/dir/subfolder/file01.txt
infile02=/dir/subfolder/file02.txt
infile03=/dir/subfolder/file03.txt
for i in {01..03}
do
u=${"infile"$i}
echo $u
doneI got error... (7 Replies)
Discussion started by: yifangt
7 Replies
9. Solaris
Hi,
I am trying to disable the recursion on DNS server (Solaris 10). I have added the lines in the named.conf as below:
allow-query-cache { none; };
recursion no;
Then restarted the solaris DNS services
svcadm refresh svc:/network/dns/server:default
Still I am able to... (0 Replies)
Discussion started by: snchaudhari2
0 Replies
10. UNIX for Beginners Questions & Answers
Hi,
I cannot find a way to copy a directory to another location with all attributes (mode, ownership, timestamps) but withOUT recursion (after so many years of working with Linux).
Say I want to create /home/jail/tmp exactly like /tmp but with nothing in it. Here is what I tried:
... (7 Replies)
Discussion started by: chebarbudo
7 Replies
LEARN ABOUT DEBIAN
data::formvalidator::constraintsfactory
Data::FormValidator::ConstraintsFactory(3pm) User Contributed Perl Documentation Data::FormValidator::ConstraintsFactory(3pm)
NAME
Data::FormValidator::ConstraintsFactory - Module to create constraints for HTML::FormValidator.
DESCRIPTION
This module contains functions to help generate complex constraints.
If you are writing new code, take a look at Data::FormValidator::Constraints::MethodsFactory instead. It's a modern alternative to what's
here, offering improved names and syntax.
SYNOPSIS
use Data::FormValidator::ConstraintsFactory qw( :set :bool );
constraints => {
param1 => make_or_constraint(
make_num_set_constraint( -1, ( 1 .. 10 ) ),
make_set_constraint( 1, ( 20 .. 30 ) ),
),
province => make_word_set_constraint( 1, "AB QC ON TN NU" ),
bid => make_range_constraint( 1, 1, 10 ),
}
BOOLEAN CONSTRAINTS
Those constraints are available by using the ":bool" tag.
make_not_constraint( $c1 )
This will create a constraint that will return the negation of the result of constraint $c1.
make_or_constraint( @constraints )
This will create a constraint that will return the result of the first constraint that return an non false result.
make_and_constraint( @constraints )
This will create a constraint that will return the result of the first constraint that return an non false result only if all constraints
returns a non-false results.
SET CONSTRAINTS
Those constraints are available by using the ":set" tag.
make_set_constraint( $res, @elements )
This will create a constraint that will return $res if the value is one of the @elements set, or the negation of $res otherwise.
The "eq" operator is used for comparison.
make_num_set_constraint( $res, @elements )
This will create a constraint that will return $res if the value is one of the @elements set, or the negation of $res otherwise.
The "==" operator is used for comparison.
make_word_set_constraint( $res, $set )
This will create a constraint that will return $res if the value is a word in $set, or the negation of $res otherwise.
make_cmp_set_constraint( $res, $cmp, @elements )
This will create a constraint that will return $res if the value is one of the @elements set, or the negation of $res otherwise.
$cmp is a function which takes two argument and should return true or false depending if the two elements are equal.
NUMERICAL LOGICAL CONSTRAINTS
Those constraints are available by using the ":num" tag.
make_clamp_constraint( $res, $low, $high )
This will create a constraint that will return $res if the value is between $low and $high bounds included or its negation otherwise.
make_lt_constraint( $res, $bound )
This will create a constraint that will return $res if the value is lower than $bound, or the negation of $res otherwise.
make_le_constraint( $res, $bound )
This will create a constraint that will return $res if the value is lower or equal than $bound, or the negation of $res otherwise.
make_gt_constraint( $res, $bound )
This will create a constraint that will return $res if the value is greater than $bound, or the negation of $res otherwise.
make_ge_constraint( $res, $bound )
This will create a constraint that will return $res if the value is greater or equal than $bound, or the negation of $res otherwise.
OTHER CONSTRAINTS
make_length_constraint($max_length)
This will create a constraint that will return true if the value has a length of less than or equal to $max_length
SEE ALSO
Data::FormValidator(3)
AUTHOR
Author: Francis J. Lacoste <francis.lacoste@iNsu.COM> Maintainer: Mark Stosberg <mark@summersault.com>
COPYRIGHT
Copyright (c) 2000 iNsu Innovations Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms as perl itself.
perl v5.14.2 2011-11-25 Data::FormValidator::ConstraintsFactory(3pm)