For Programmers: Free Programming Magazines  


Home > Archive > AWK > July 2004 > Debug my 4-lines script calling awk from awk (recursive factorial algorythm)









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Debug my 4-lines script calling awk from awk (recursive factorial algorythm)
Laurent Schneider

2004-07-16, 8:55 am

Hi,
I am here calling awk from awk. This script does execute a factorial.
However, it is buggy, since it does not work when you enter a value
for the second time. I cannot explain that !!!

Good luck and thanks for help ;-)
Laurent


$ cat bug.awk
$2 != 1 { printf $1"! = " }
{ n=1 }
$1 > 2 { "echo "($1-1)" 1|awk -f fact.awk" | getline n }
/./ { print n*$1 }

$ echo 3 4 5 3 4 5 | tr ' ' '\n' | awk -f bug.awk
3! = 6
4! = 24
5! = 120
3! = 3
4! = 4
5! = 5
pop

2004-07-16, 8:55 am

try:
$2 != 1 { printf $1"! = " }
{ n=1 }
$1 > 2 { cmd= "echo "($1-1)" 1|awk -f fact.awk"; cmd | getline n; close(cmd) }
/./ { print n*$1 }


--
pop is Mark
I'm lost. I've gone to look for myself.
If I should return before I get back, keep me here.
--
"Laurent Schneider" <laurentschneider@yahoo.com> wrote in message
news:fe0e47b1.0407160017.1b6a0a10@posting.google.com...
> Hi,
> I am here calling awk from awk. This script does execute a factorial.
> However, it is buggy, since it does not work when you enter a value
> for the second time. I cannot explain that !!!
>
> Good luck and thanks for help ;-)
> Laurent
>
>
> $ cat bug.awk
> $2 != 1 { printf $1"! = " }
> { n=1 }
> $1 > 2 { "echo "($1-1)" 1|awk -f fact.awk" | getline n }
> /./ { print n*$1 }
>
> $ echo 3 4 5 3 4 5 | tr ' ' '\n' | awk -f bug.awk
> 3! = 6
> 4! = 24
> 5! = 120
> 3! = 3
> 4! = 4
> 5! = 5



Laurent Schneider

2004-07-16, 3:55 pm

ok very clear, thanks a lot
Laurent
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com