Ich habe das folgende Snippet in diesem Thread gesehen: Wie man von csh zu bash als Standard-Shell wechselt
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
Mein Verständnis ist, dass wenn Sie dieses Snippet darin platzieren, ~/.login
es bash
beim Anmelden aufgerufen wird.
Ich habe eine ähnliche Situation, in der ich ein ähnliches Snippet verwenden möchte, um eine Version aufzurufen zsh
, die sich von der Standardversion unterscheidet, mit der ich mich anmelde. Ein Grund, warum ich dieses Problem habe, ist, dass ich mich nicht entscheiden kann meine gewünschte Version von zsh
in den Optionen erlaubt chsh
, und ich habe keine Administratorrechte.
Mit diesem:
- Wie würde ich das obige Snippet ändern, um dies zu tun, wenn ich zwischen verschiedenen Versionen von zsh wechsle?
- Warum werden
exec
im obigen Snippet zwei Befehle benötigt? Was machen Sie? Warum wird das obige Snippet verwendetsh
undbash
(der Benutzer soll sich mit anmeldencsh
)
.zprofile
:if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
und das scheint zu funktionieren!