Este deve ser o mesmo erro em um shell de login do usuário, porque em um shell de login o parâmetro 0
shell, expandindo para o nome do processo atual, fornece -bash
, o sinal de menos indicando o shell de login. Agora você vê de onde vem o erro -b
.
Tente
echo "$( dirname "$(readlink -f -- "$0")" )"