|
From: | James Mason |
Subject: | Re: export in posix mode |
Date: | Wed, 27 Feb 2013 16:39:59 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux i686 on x86_64; rv:11.0) Gecko/20120312 Thunderbird/11.0 |
On 02/27/2013 04:00 PM, Bob Proulx wrote:
Eric Blake wrote:James Mason wrote:I certainly could be doing something wrong, but it looks to me like bash - when in Posix mode - does not suppress the "-n" option for export. The version of bash that I'm looking at is 3.2.25.So what? Putting bash in posix mode does not require bash to instantly prohibit extensions. POSIX intentionally allows for implementations to provide extensions, and 'export -n' is one of bash's extensions. There's no bug here, since leaving the extension always enabled does not conflict with subset of behavior required by POSIX.If you are looking to try to detect non-portable constructs then you will probably need to test against various shells including ash. (If on Debian then use dash.) https://en.wikipedia.org/wiki/Almquist_shell The posh shell was constructed specifically to be as strictly conforming to posix as possible. (Making it somewhat less than useful in Real Life but it may be what you are looking for.) It is Debian specific in origin but should work on other systems. http://packages.debian.org/sid/posh http://anonscm.debian.org/gitweb/?p=users/clint/posh.git;a=summary Bob
We considered setting up another shell as the implementation of "/bin/sh", but that's hazardous in the context of vast amounts of boot-time initialization scripting that hasn't been vetted as to avoidance of bash-isms.
Changing product script code - just so you can look for these sorts of things - isn't practical (or safe) either.
So I guess if you take the view that bash POSIX mode exists only to make bash accept POSIX scripts, and not to preclude/warn about behavior that isn't going to be acceptable elsewhere, then you're right - it's not a bug. If you care about helping people to be able to write scripts that work various places and don't exceed the POSIX specification, you're unhelpfully wrong (and you might contemplate why "bashisms" gives > 50K google hits).
-jrm
[Prev in Thread] | Current Thread | [Next in Thread] |