No Ubuntu, o shell padrão é dash
(também conhecido como Debian Almquist Shell), para o qual /bin/sh
é symlink. Quando seu script de shell é executado com #!/bin/sh
, você está efetivamente tentando executá-lo com o shell padrão. No entanto, dash
não tem a opção pipefail
, e é por isso que você está recebendo o erro.
# Verifying what /bin/sh is symlinked to
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2月 17 2016 /bin/sh -> dash
# Verify that pipefail doesn't exist as option for dash
$ dash
$ set -o | grep pipefail
$ set -o pipefail
dash: 1: set: Illegal option -o pipefail
$ sh
$ set -o pipefail
sh: 1: set: Illegal option -o pipefail
$ bash --posix
bash-4.3$ set -o pipefail
bash-4.3$