Když spustím echo $SHELL
výstup říká /bin/tcsh
což znamená, že používám tcsh
shell.
Ale například když vydám následující příkaz
alias emacs 'emacs -nw'
Zobrazuje se mi následující chyba:
bash: alias: emacs: not found
bash: alias: emacs -nw: not found
a když vydám alias emacs="emacs -nw"
běží to dobře!
To je matoucí, protože používám tcsh
ale příkazy jsou interpretovány pomocí bash
.
Jaký by mohl být důvod?
Přijatá odpověď:
$SHELL
není nutně váš aktuální shell, je to výchozí přihlašovací shell. Chcete-li zkontrolovat shell, který používáte, zkuste
ps $$
To by mělo fungovat na nejnovějších Unix/Linux s ps
který podporuje syntaxi BSD. Jinak se jedná o přenosný (POSIX) způsob
ps -p $$
To by mělo vrátit něco takového, pokud používáte tcsh
:
8773 pts/10 00:00:00 tcsh
Pokud chcete mít tcsh
být váš výchozí shell, použijte chsh
nastavit.