$SHELL gibt immer /bin/bash?

Kümmelkorn

Kümmelkorn

Aktives Mitglied
Thread Starter
Dabei seit
06.10.2008
Beiträge
1.941
Reaktionspunkte
127
Hallöle,

im moment stört es mich zwar noch nicht richtig, aber interessieren würde mich das schon mal:

Ich kenne nur eine Möglichkeit, ein Terminalfenster in tcsh/zsh oder anderen Shells zu starten: Erst ein bash-Fenster starten, dann mit tcsh oder zsh oder ... wechseln. Scheint soweit auch zu funktionieren (bin Anfänger, aber ich glaube, es klappt :eek: )

Wenn ich nun aber echo $SHELL ausführe, erscheint immer - egal wo - /bin/bash! oO Naja, ich rate mal ins Blaue, dass der Befehl tcsh der bereits offenen Bash-Shell nur einen Tochterprozess anlegt, in dem dann tcsh läuft - und $SHELL wird wahrscheinlich aus dem Mutterprozess/der Muttershell, also bash gelesen!?

Aber wie kann ich denn dann testen, unter welcher Shell ich gerade bin?

Gruß, Micha
 
echo $0

in $SHELL steht deine default shell. und die wechselst du entweder mit chsh oder den terminal.app settings.
 
  • Gefällt mir
Reaktionen: Kümmelkorn
... oder über Systemeinstellungen > Benutzer > Erweiterte Optionen
... oder über dscl Terminal
 
Ich nehme an, es funktioniert deshalb nur interaktiv und nicht in Skripten, weil bei Skripten sowieso in der ersten Zeile steht, welche Shell das Script benutzt?

Die Default Shell will ich ja gar nicht ändern (vorerst) :) hab mir nur schon mal Fenstereinstellungen eingerichtet - ein Fenster für tcsh, eins für zsh etc. zum Kennenlernen ^^
 
Ich nehme an, es funktioniert deshalb nur interaktiv und nicht in Skripten, weil bei Skripten sowieso in der ersten Zeile steht, welche Shell das Script benutzt?

Nein, in $0 steht immer der Name des aktuellen Kommandos. In einer Shell-Session ist das eben der Name der gerade laufenden Shell, in einem Skript der Name des Skriptes.
 
Zurück
Oben Unten