Wenn ich echo $SHELL
ausführe die Ausgabe lautet /bin/tcsh
was bedeutet, dass ich einen tcsh
ausführe Shell.
Aber zum Beispiel, wenn ich den folgenden Befehl ausführe
alias emacs 'emacs -nw'
Ich erhalte die folgende Fehlermeldung:
bash: alias: emacs: not found
bash: alias: emacs -nw: not found
und wenn ich alias emacs="emacs -nw"
ausgebe es läuft gut!
Das ist verwirrend, da ich tcsh
ausführe aber die Befehle werden von bash
interpretiert .
Was könnte der Grund sein?
Akzeptierte Antwort:
$SHELL
ist nicht unbedingt Ihre aktuelle Shell, sondern die standardmäßige Login-Shell. Um die von Ihnen verwendete Shell zu überprüfen, versuchen Sie
ps $$
Dies sollte auf den neuesten Unix/Linux mit einem ps
funktionieren das die BSD-Syntax unterstützt. Ansonsten ist dies der portable (POSIX) Weg
ps -p $$
Das sollte so etwas zurückgeben, wenn Sie tcsh
ausführen :
8773 pts/10 00:00:00 tcsh
Wenn Sie tcsh
haben möchten Ihre Standard-Shell sein, verwenden Sie chsh
um es einzustellen.