GNU/Linux >> Tutoriales Linux >  >> Linux

Bash no lee .bashrc a menos que se inicie manualmente

En .bash_profile, asegúrese de tener lo siguiente:

# .bash_profile

# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
  . ~/.profile
fi

# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
    . ~/.bashrc
fi

¿Por qué lo obtendría? No estás ejecutando verdadero bash :

$ echo $SHELL
/bin/sh

En la mayoría de los sistemas modernos sh es un enlace simbólico a un shell básico. En mi Debian por ejemplo:

$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 Aug  1  2012 /bin/sh -> dash

En tu caso, sh es un enlace a bash pero, como se explica en man bash :

Si bash se invoca con el nombre sh, intenta imitar el comportamiento de inicio de las versiones históricas de sh lo más fielmente posible, mientras también cumple con el estándar POSIX. [...] Cuando se invoca como un shell interactivo con el nombre sh, bash busca la variable ENV, expande su valor si está definido y usa el valor expandido como el nombre de un archivo para leer y ejecutar. Dado que un shell invocado como shno intenta leer ni ejecutar comandos desde ningún otro archivo de inicio , la opción --rcfile no tiene ningún efecto.

y

--norc
No lea ni ejecute el archivo de inicialización de todo el sistema/etc/bash.bashrc y el archivo de inicialización personal ~/.bashrc si el shell es interactivo. Esta opción está activada de forma predeterminada si el shell se invoca como sh.

Entonces, dado que su shell predeterminado es sh , .bashrc no se lee. Simplemente configure su shell predeterminado para bash usando chsh -s /bin/bash .


Linux
  1. Comenzando con Zsh

  2. Personalización del shell Bash

  3. ¿El propósito de .bashrc y cómo funciona?

  4. [ :Operador inesperado en programación shell

  5. Shell Script, lea en la misma línea después de hacer eco de un mensaje

Comando de lectura Bash

Cómo leer un archivo línea por línea en Bash

.bashrc frente a .bash_profile

Shell Scripting Parte V:Funciones en Bash

Shell Scripting Parte I:Primeros pasos con bash scripting

Cómo instalar Linux Bash Shell en Windows 10