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 -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp