touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #120529
[Bug 139097] Re: dash variable expansion error using local, readonly, and export
As dash is used to replace bash for non-interactive shells, dash should
reproduce the bash syntax of the `local` keyword as best as it can.
I agree with Dan's comment #7 "the above DASH behaviour is broken, for
all three uses "local", "export", and "readonly". BASH is correct, and
DASH should be fixed."
The "local" keyword should not change anything to the required syntax of the assignment, e.g.
if `y=$x` works, `local y=$x` must work also!
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to dash in Ubuntu.
https://bugs.launchpad.net/bugs/139097
Title:
dash variable expansion error using local, readonly, and export
Status in dash package in Ubuntu:
Confirmed
Bug description:
<pre>
Binary package hint: dash
[Edited May 2010]
True for all dash up to at least May 2010.
Bug in variable expansion (incorrect word-splitting) using an assignment
with "local", "readonly", or "export in dash:
$ x='1 2 3'
$ y=$x # this works fine
$ echo "$y"
1 2 3
$ local y=$x # this fails due to dash bug
local: 2: bad variable name
$ echo "$y"
1
$ readonly y=$x # this fails due to dash bug
readonly: 2: bad variable name
$ export y=$x # this fails due to dash bug
export: 2: bad variable name
The same use of assignment using "local", "readonly" and "export" all work
fine in bash:
bash-3.2$ x='1 2 3'
bash-3.2$ y=$x
bash-3.2$ echo "$y"
1 2 3
bash-3.2$ local y=$x
bash: local: can only be used in a function
bash-3.2$ foo () {
> local y=$x
> echo "$y"
> }
bash-3.2$ foo
1 2 3
bash-3.2$ readonly y=$x # works fine
bash-3.2$ export y=$x # works fine
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dash/+bug/139097/+subscriptions