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.