4 ms·
DASH (Debian Alchemist SHell). I believe it's the default shell for Debian and Ubuntu (I'm a Fedora/CentOS user myself). I remember hitting some edge cases wher
by yes_or_gnome 9y ago
DASH (Debian Alchemist SHell). I believe it's the default shell for Debian and Ubuntu (I'm a Fedora/CentOS user myself). I remember hitting some edge cases where some bespoke shell scripts don't work correctly on Ubuntu because DASH is a "slim" Bash alternative, so it doesn't have all the "bashisms".
- lwf 9y agoMore specifically, it aims to be POSIX `sh`-compatible, which gives a large speed boost in many cases. There's a `checkbashisms` command in Debian's `devscripts` package to ensure scripts will work correctly under both shells.
- eriknstr 9y ago> I remember hitting some edge cases where some bespoke shell scripts don't work correctly on Ubuntu because DASH is a "slim" Bash alternative, so it doesn't have all the "bashisms". People say that, but usually the reason their scripts are not working is that they are using bashisms while retaining #!/usr/bin/env sh or #!/bin/sh rather than doing as they should when writing shell scripts that are using bash features; #!/usr/bin/env bash I think it boils down to a lot of people being unaware of the difference between what is POSIX compliant and what is not, or even that there is such a distinction to be made. I write most of my shell scripts targeting bash, but I always use the hashbang that invokes to bash, and I also name my scripts like somescript.bash when it's a bash script and somescript.sh when it's POSIX shell.