Is this a bug in "sh"?
Mark Lanzo
lanzo at wgate.wgate.com
Fri Jul 27 01:44:01 AEST 1990
I ran into a strange problem when I was writing a "sh" script.
I do not know whether or not this is a bug.
if it is, I will report it to the local vendor's support line, but
I'd like to find out for sure before I send the support folks on a
wild goose chase.
So what's the verdict on what the correct response the following
script should produce?
Thanks in advance,
Mark Lanzo
...!uunet!wgate!lanzo (lanzo at wgate.com)
-------------------------%<---snip here (but you knew that, didn't you?)------
#!/bin/sh
#
# A script to demonstrate a possible shell bug.
#
# Assume that the current directory contains the files "f1", "f2", and "f3",
# and "bug" (this script), and I run this script in it.
# What should the output of the script be?
#
# I would expect this:
# Arguments are a b c
# bug f1 f2 f3
# Arguments now are a b c
#
# But instead I actually see:
# Arguments are a b c
# bug f1 f2 f3
# Arguments now are bug f1 f2 f3
#
# When calling shell "functions", the positional parameters ($1, $2...)
# are supposed to be set to the arguments of the function. Apparently
# this blows away all the positional parameters of all the calling (higher
# level) functions!
# This does not happen on our system if I use "/bin/ksh" instead;
# it gives the first response shown above.
ECHO()
{
echo "$*"
}
show_bug()
{
echo Arguments are "$*"
ECHO *
echo Arguments now are "$*"
}
show_bug a b c
More information about the Comp.unix.questions
mailing list