GNU/Linux >> Linux Esercitazione >  >> Linux

Bash non legge .bashrc a meno che non venga avviato manualmente

In .bash_profile assicurati di avere quanto segue:

# .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

Perché dovrebbe procurarselo? Non stai eseguendo il vero bash :

$ echo $SHELL
/bin/sh

Nella maggior parte dei sistemi moderni sh è un collegamento simbolico a una shell di base. Sulla mia Debian per esempio:

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

Nel tuo caso, sh è un collegamento a bash ma, come spiegato in man bash :

Se bash viene invocato con il nome sh, cerca di imitare il più fedelmente possibile il comportamento di avvio delle versioni storiche di sh, conformandosi anche allo standard POSIX. [...] Quando viene invocata come shell interattiva con il nome sh, bash cerca la variabile ENV, espande il suo valore se è definito e usa il valore espanso come nome di un file da leggere ed eseguire. Poiché una shell invocata come sh non tenta di leggere ed eseguire comandi da altri file di avvio , l'opzione --rcfile non ha effetto.

e

--norc
Non leggere ed eseguire il file di inizializzazione a livello di sistema/etc/bash.bashrc e il file di inizializzazione personale ~/.bashrci se la shell è interattiva. Questa opzione è attiva per impostazione predefinita se la shell viene richiamata come sh.

Quindi, poiché la tua shell predefinita è sh , .bashrc non si legge. Basta impostare la shell predefinita su bash usando chsh -s /bin/bash .


Linux
  1. Iniziare con Zsh

  2. Lo scopo di .bashrc e come funziona?

  3. Capisci il significato di `$_`?

  4. Come cambiare Cron Shell (sh To Bash)?

  5. Shell Script, letto sulla stessa riga dopo aver ripetuto un messaggio

Bash ha letto Comando

Come leggere un file riga per riga in Bash

.bashrc vs .bash_profile

Shell Scripting Parte V:Funzioni in Bash

Shell Scripting Parte I:Introduzione agli script bash

Come installare Linux Bash Shell su Windows 10