Quando eseguo echo $SHELL
l'output dice /bin/tcsh
il che significa che sto eseguendo un tcsh
shell.
Ma per esempio quando eseguo il seguente comando
alias emacs 'emacs -nw'
Ottengo il seguente errore:
bash: alias: emacs: not found
bash: alias: emacs -nw: not found
e quando emetto alias emacs="emacs -nw"
va bene!
Questo è fonte di confusione poiché sto eseguendo tcsh
ma i comandi sono interpretati da bash
.
Quale potrebbe essere il motivo?
Risposta accettata:
$SHELL
non è necessariamente la tua shell attuale, è la shell di login predefinita. Per controllare la shell che stai utilizzando, prova
ps $$
Questo dovrebbe funzionare sui più recenti Unix/Linux con un ps
che supporta la sintassi BSD. Altrimenti, questo è il modo portatile (POSIX)
ps -p $$
Dovrebbe restituire qualcosa del genere se stai eseguendo tcsh
:
8773 pts/10 00:00:00 tcsh
Se vuoi avere tcsh
essere la tua shell predefinita, usa chsh
per impostarlo.