← Back to team overview

touch-packages team mailing list archive

[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