I thought I'd illustrate the problem. Given a #!/bin/sh script like this
called tst:
#!/bin/sh
f()
{
local v="$@"
echo "<$V>"
}
f "$@"
On Debian, Fedora, FreeBSD, OpenBSD, macOS, and Solaris, the arguably incorrect
but more useful behaviour is:
> ./tst a b c
<a b c>
> ./tst 1 2 3
<1 2 3>
On Ubuntu, the arguably correct but less useful behaviour is:
> ./tst a b c
<a>
> ./tst 1 2 3
./tst: 4: local: 2: bad variable name
On NetBSD, the behaviour is very similar to Ubuntu's, but not identical:
> ./tst a b c
<a>
> ./tst 1 2 3
local: 2: bad variable name
<1>
It seems that "bad variable name" is a fatal error on Ubuntu, but not on
NetBSD.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1943964
Title:
local var="$@" doesn't behave like every other system
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dash/+bug/1943964/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs