Ich habe vor ein paar Jahren mit UNIX gearbeitet, und ich fange gerade wieder an, mich wieder darauf einzulassen. Ich habe mich gefragt, ob jemand mir mit einer Frage helfen könnte.Wirksame Methoden zum Ändern von Shells in UNIX
Zum Beispiel, wenn ich in bash bin, sage ich chsh --shell /bin/tcsh
danach werde ich aufgefordert, mein Passwort einzugeben. Wenn ich versuche, echo $SHELL
zu sagen, wird es mir nicht sagen, dass ich Schalen geändert habe. Es sagt mir immer noch, ich bin in der Bash, nicht C-Shell. Also muss ich gehen und neu starten. Sobald ich es zurückmelde, dann es sagt, ich bin in C-Shell.
Gibt es eine effektivere Methode zum Schalenwechsel? Eine, bei der ich mich nicht an- und abmelden muss?
Vielen Dank im Voraus.
Einfach Befehl 'tcsh' und dann' echo $ 0'. Sie können sich nicht auf $ SHELL verlassen, siehe zum Beispiel 'man bash'. –
Sie können sich auf $ SHELL verlassen, aber ihr Zweck ist nicht, Ihnen zu sagen, in welcher Shell Sie sich befinden. Ihr einziger Zweck ist es, anderen Programmen mitzuteilen, welche Shell Sie bevorzugen. Wenn ein Programm eine Shell erzeugen muss, sollte es den Wert der Umgebungsvariablen SHELL prüfen und verwenden, dass –
'$ SHELL' ist der" * vollständige Pfadname der Login-Shell des aktuellen Benutzers * "(aus' man bash') was ist nicht unbedingt die aktuelle Shell. – cdarke