if dash is given an option to `set -o` that it doesnt understand, it aborts the script instead of simply having `set` exit with a non-zero value this causes `ldd` to fail with dash this script should show "moocow" but only gets out "moo" with dash: #!/bin/dash echo -n moo set -o pipefail 2> /dev/null echo cow
This is not a bug in dash; susv3 explicitly allows this behaviour. See 2.14 "Special Built-In Utilities", item 1: "A syntax error in a special built-in utility may cause a shell executing that utility to abort, while a syntax error in a regular built-in utility shall not cause a shell executing that utility to abort." set is a "special built-in utility".
fair enough ... still lame ;)