The reason that normal startup scripts don't, is that there's no guarantee
/bin/sh will point to bash, or even that bash is installed.

If you want to use bash, the first line should be /bin/bash instead of
/bin/sh, so it's obvious it needs bash specifically.

Jon

On Sun, 28 Sep 2003, [iso-8859-1] Manoj Kumar wrote:

> Is there any reason not to use bash features in init
> scripts?
> Consider, for example, this fragment from
> /etc/sysconfig/network-scripts/ifup-post:
>
>     DEVICETYPE=`echo $DEVICE | sed "s/[0-9]*$//"`
>     REALDEVICE=`echo $DEVICE | sed 's/:.*//g'`
>     if echo $DEVICE | grep -q ':' ; then
>         ISALIAS=yes
>     else
>         ISALIAS=no
>     fi
>
> In bash we can do this much faster with something like
> this:
>
>     DEVICETYPE=$DEVICE
>     while [[ $DEVICETYPE == *[0-9] ]]; do
>         DEVICETYPE=${DEVICETYPE%[0-9]}
>     done
>     REALDEVICE=${DEVICE%%:*}
>     if [[ $DEVICE == *:* ]]; then
>         ISALIAS=yes
>     else
>         ISALIAS=no
>     fi
>
> Okay, the loop that replaces the first line is messy,
> but it saves
> a couple of forks and an exec.  The other two changes
> are both
> simpler and faster.
>
> So why do most init scripts use sed and grep to
> process
> strings?  It can't be a desire to allow them to work
> with the
> Bourne shell (why would we want that anyway?) because
> some
> scripts do use bash features.
>
> [EMAIL PROTECTED]
>
>
> ________________________________________________________________________
> Yahoo! India Matrimony: Find your partner online.
> Go to http://yahoo.shaadi.com
>
>
> _______________________________________________
> Redhat-devel-list mailing list
> [EMAIL PROTECTED]
> https://www.redhat.com/mailman/listinfo/redhat-devel-list
>


_______________________________________________
Redhat-devel-list mailing list
[EMAIL PROTECTED]
https://www.redhat.com/mailman/listinfo/redhat-devel-list

Reply via email to