Se um script executável não tiver uma linha shebang, ele será executado por /bin/sh
. Se você usar source
para executá-lo, ele será executado no shell atual:
$ cat s.sh
echo "shell=$shell"
echo "BASH=$BASH"
$ ./s.sh
shell=
BASH=/usr/local/bin/bash
$ tcsh
[~]% ./s.sh
shell=
BASH=/bin/sh
[~]% source s.sh
shell=/bin/tcsh
BASH: Undefined variable.