Dash as default shell

Nico Kadel-Garcia nkadel at gmail.com
Fri Oct 3 22:59:37 UTC 2014


On Fri, Oct 3, 2014 at 6:14 PM, Rahul Sundaram <metherid at gmail.com> wrote:
> Hi
>
> On Fri, Oct 3, 2014 at 9:04 AM, Garry T. Williams <gtwilliams at gmail.com>
> wrote:
>>
>>
>>     $ (checkbashisms -f -p $(grep -rlE '^#! ?/bin/(env )?sh' /usr/bin) )
>> 2>&1 >/dev/null|grep 'possible bashism'|awk '{print $4}'|sort -u|wc -l
>>     113
>>     $
>>
>> Many of these trigger multiple warnings from checkbashisms.  The total
>> here was 717.  (Fedora 20, KDE.)
>
>
> Those numbers are fairly misleading if you look a bit closer.   Each
> individual script has to be run through dash to confirm that it isn't a
> false warning.  If it truly uses bash specific syntax, then there is a bug
> in the script  and it should be changed to use !/usr/bin/bash (quicker) as
> opposed to !/bin/bash or fixed to remove bash specific syntax (more
> portable).  Regardless of whether we are switching the default system shell,
> any shell script that uses bash syntax should be fixed to use
> !/usr/bin/bash.  A lot of this work has already been done by Debian/Ubuntu.

And it's going to break backports to EPEL for RHEL 5 or RHEL 6, or
CentOS or Scientific Linux,  pretty seriously. It's unnecessary,
confusing, and non-backwards-compatible: I wouldn't suggest this until
well after RHEL 7 or later becomes the majority of EPEL traffic, just
out of courtesy to the paying customers who  fund Fedora developers.


More information about the devel mailing list