Risposte:
Bash produrrà OGNI .bash_profile o .bashrc, a seconda di come viene chiamato. Se si tratta di una shell di accesso, Bash cerca ~ / .bash_profile, ~ / .bash_login o ~ / .profile, in quell'ordine, e trova il primo che trova (e solo quello). Se non è una shell di accesso ma è interattiva (come la maggior parte delle sessioni terminali), Bash genererà ~ / .bashrc.
Probabilmente, iTerm sta cercando ~ / .bashrc. Se è configurato per l'avvio come shell di accesso, cercherà ~ / .bash_profile. È quasi certamente un errore all'interno del file di configurazione piuttosto che la shell non lo sta approvando.
Vorrei mettere una riga all'inizio di ogni file. Nella parte superiore di ~ / .bash_profile:
export BASH_CONF="bash_profile"
E nella parte superiore di ~ / .bashrc:
export BASH_CONF="bashrc"
Quindi, apri un nuovo iTerm e digita
$ echo $BASH_CONF
Ciò dovrebbe confermare che il file è di provenienza e puoi esaminare la sintassi del file.
In iTerm2, nessuna di queste soluzioni ha funzionato per me. Sono stato in grado di farlo leggere correttamente il mio file .bashrc aggiungendo il comando
source ~/.bashrc
nel campo Invia testo all'inizio: in Impostazioni / Generale per il mio profilo iTerm.
~/.bashrc
. Modificato
Mi chiedo solo che usi davvero Bash? Magari puoi usare echo $SHELL
, è possibile che tu stia usando zsh , hai installato su-my-zh ?
Di solito incontro lo stesso problema, lo risolvo configurando ~ / .zshrc invece ~ / .bash_profile per la shell di accesso o ~ / .bashrc per la shell non di accesso.
Forse puoi provare
Sulla mia macchina 10.6 ~/.profile
è di provenienza. Quindi una source .bashrc
voce in ~/.profile
dovrebbe fare il lavoro.
Soluzione semplice.
1. Apri il tuo ~/.zshrc
file
2. Aggiungere la seguente riga alla fine del file.
source ~/.bash_profile
Inserisci le tue definizioni di alias nel file del profilo bash, devi creare il file ma verrà acquisito automaticamente. Creo un file separato chiamato alias.configuration e lo sorgente in .bash_profile solo perché ho un altro utente definito e voglio avere lo stesso alias impostato.
.bashrc
ne .bash_profile
vengono interpretati.
Inserisci
set -x
all'inizio di /etc/profile
. Questo vi dà un resoconto line-by-line di tutto ciò che viene eseguito quando bash
si avvia, inclusi i file provenienti dal di dentro /etc/profile
, ~/.bash_profile
ecc E 'un po' scoraggiante se non si capisce bash
di scripting molto bene, ma si può essere in grado di vedere se c'è un errore in un file di avvio e l'output sarà utile per qualcuno competente bash
per aiutarti a individuare il tuo problema.
È possibile rimuovere la set -x
linea al termine della risoluzione dei problemi.
Su 10.10 e iTerm2 2.0, profilo personalizzato
Ho unito le soluzioni di coppia per lavorare come previsto.
.bash_profile
sorgente ed esecuzione su zsh.
Preferences -> Profiles -> General
.
Seleziona Comando sotto Comando.
E aggiungi nella casella di testo /bin/bash --login
.
Quindi in .bash_profile aggiungi riga
/bin/zsh --login
Questo è tutto.
bash
sempre corso zsh
, non è quello che nessuno si aspetta.
source ~/.bash_profile
manualmente. @Scott Dopo aver fatto quanto sopra, ho zsh nel modo richiesto.
zsh
potrebbe essere quello che desideri , ma non è richiesto o richiesto da questa domanda, che è taggata [bash] e non dice nulla zsh
. (2) Se definite alias e funzioni di shell e impostate variabili (senza esportarle) nella vostra .bashrc
e / o .bash_profile
, sono disponibili nella vostra zsh
shell?
~/.bash_profile
viene invocato da bash, che sta cortocircuitando le istruzioni che hai~/.bashrc
. Questo problema può verificarsi inaspettatamente se un programma canaglia aggiunge alcune istruzioni al tuo~/.bash_profile
quando in precedenza il file non esisteva e hai inserito tutti i tuoi comandi bash~/.bashrc
. La soluzione è di eliminare il tuo ~ / .bash_profile o di avere ~ / .bash_profile come sorgente del tuo ~ / .bashrc. Questo può essere eseguito aggiungendo il comando:source ~/.bashrc
alla fine del tuo~/.bash_profile
e riavviando il terminale.