
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
$SHELL
almacena su shell predeterminado, no su shell actual. Pruebe echo $0
en su lugar:
$ echo $SHELL
/bin/bash
$ echo $0
dash