Hi,

v.nix.is wrote:
> Package: dash
> Version: 0.5.5.1-3
> Severity: important
> 
> 
> dash doesn't understand the ** exponent operator. This caused some
> breakage when moving from bash to dash as suggested by the package
> manager as several (non-debian) cronjobs used the feature on their
> argument list.

Someone else can comment on whether dash should learn **, but in the
meantime, perhaps a few comments could help:

dash is not meant to be totally compatible with bash.  Generally it
stays pretty close to the POSIX standard in the shell constructs it
accepts; in particular, arithmetic expansion generally allows includes
operators from C.  So I suspect the non-inclusion of ** is by design:

<http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_04>
<http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag_17_01_02_01>

Whether it would be a good idea to change that is of course a
different question.

Using dash as sh is often safe with third-party scripts, since many
authors use #!/bin/bash instead of #!/bin/sh when using bash
extensions.  Though that is not much help for cronjobs.  The change of
sh _can_ break private (or non-portable) scripts, which is part of why
it is configurable.  To make sh point to bash again,
'dpkg-reconfigure dash' can help.

If your cronjobs are the only scripts you use that require bash
without a #!/bin/sh line, a less drastic measure is also possible: the
SHELL line in /etc/crontab determines the shell used to run system
cron jobs.

Hope that helps,
Jonathan



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to