Bash no genera el archivo a menos que se inicie manualmente

Bash no genera el archivo a menos que se inicie manualmente

bash no obtendrá archivos desde una terminal de inicio de sesión a menos que ejecute bash manualmente desde una terminal, tengo bash (y no sh o dash). Cuando obtengo un archivo, devuelve errores (como "error de sintaxis casi inesperado") a menos que no lo ejecute$ fiestaantes de la fuente

$echo $TERM
screen-256color

$echo $SHELL
/bin/bash

$shopt login_shell
login_shell     on

Error:

$source  ./shrc
-bash: ./shrc: line 105: syntax error near unexpected token `('

$bash 
$source ./shrc <-- now it works

¿Algunas ideas?

ACTUALIZACIÓN 1

Cuando ejecuto bash, entro en el shell non_login y funciona. ¿Por qué el shell de inicio de sesión no puede acceder al archivo fuente?

ACTUALIZACIÓN 2

$echo $0
-bash

$bash
$echo $0
bash

ACTUALIZACIÓN 3

  else
        echo;
        echo "The SPEC environment variable is not set! Please source the shrc and try again."
        echo;
    fi
  }

  ogo() {   <----- LINE 105
      SHRC_NO_GO=0
      TOP=$SPEC
      if [ "x$TOP" != "x" ]; then
          if [ "x$1" = "x--help" -o "x$1" = "x-h" ]; then

Es un archivo de los puntos de referencia SPEC2006 (es un programa bien conocido, no es mi código). Mi suposición es que es correcto. (de hecho, en un shell sin inicio de sesión, funciona)

Respuesta1

$SHELLalmacena su shell predeterminado, no su shell actual. Pruebe echo $0en su lugar:

$ echo $SHELL
/bin/bash
$ echo $0
dash

información relacionada