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.