[arch-projects] [dbscripts] [PATCH v2 1/5] Use even more bashisms.

Emil Velikov emil.l.velikov at gmail.com
Tue Feb 20 17:24:44 UTC 2018


On 20 February 2018 at 14:23, Eli Schwartz <eschwartz at archlinux.org> wrote:
> On 02/20/2018 06:59 AM, Emil Velikov wrote:
>> Disclaimer: the following is a bit subtle topic, so I hope it doesn't
>> spur a lot of off-topic.
>
> Eh, I don't mind.
>
>> Is there any performance or other technical benefit to using more bashisms?
>>
>> Reason being, that I am slowly going through different parts of Arch
>> making it zsh friendly.
>> While keeping the code brief and legible, of course.
>> Guessing that I've picked the wrong hobby?
>
> I think you'll probably find that few people write zsh scripts for
> non-interactive use. I'm not really sure what the point would be,
> considering it has a nonstandard syntax (bash is ubiquitous, zsh is
> not), and many people who would know bash would not know zsh (like me
> for example).
>
> AFAIK zsh should more or less run either bash or POSIX sh scripts just
> fine if you invoke it via a symlink named `sh` or `bash`, because zsh
> has a bash compatibility mode. I have no idea whether that bash
> compatibility mode fixes subtle things like the fact that zsh arrays are
> 1-indexed while bash arrays are 0-indexed, but if I had to guess,
> probably not.
>
> ...
>
> I can see some compelling reasons to write scripts targeting POSIX sh as
> a baseline, which is being *sh* friendly, not zsh friendly.
> But, for projects that make heavy use of bashisms anyways, I dislike
> using POSIX because it implies that sh will be supported in any way when
> it really won't be. Essentially, I prefer to go "all in".
>
> As for why you'd want them, bashisms generally look cleaner IMHO, and
> they add a great deal of power and flexibility to the shell. Things like
> [[ ... ]] are just a lot more sane in basically every way, shell
> arithmetic uses proper operators, etc.
>
Seems like I wasn't clear enough:
The goal is not to appease zsh - but a step closer to POSIX sh friendly.

I've been staring and writing bash (closer to POSIX sh really) scripts
for over a decade, haven't seen what makes X cleaner over Y.
Yet that's subjective, unlike the original argument - consistency rules ;-)

Thanks
Emil


More information about the arch-projects mailing list