Push / Pop auf ksh?

8

Gibt es ein Äquivalent der bash pushd / popd Befehle für das KSH?

Für diejenigen, die nicht wissen, was pushd und popd in bash tun, hier ist die Beschreibung von der Manpage

%Vor%

Danke

    
hhafez 12.06.2009, 01:34
quelle

4 Antworten

10

Als ich entdeckte, dass ksh diese nicht enthielt, schrieb ich meine eigene. Ich setze das in ~/bin/dirstack.ksh und meine .kshrc Datei enthält es so:

%Vor%

Hier sind die Inhalte von dirstack.ksh :

%Vor%     
Eddie 12.06.2009, 01:44
quelle
3

Wenn Sie mit einer einzigen Ebene der Rückverfolgung einverstanden sind, können Sie Alias ​​'cd -' oder 'cd $ OLDPWD' zum Öffnen verwenden.

Wie für dir.ksh ... laut Google ist es Teil eines kommerziellen Pakets :

  

HINWEIS

     

popd ist eine definierte KornShell-Funktion   in der Datei

%Vor%      

Diese Datei wird normalerweise von a verarbeitet   Login Shell während der Verarbeitung von   die Datei $ ROOTDIR / etc / profile.ksh. Ob   Ihr System erkennt das nicht   popd Befehl, überprüfen Sie Ihre profile.ksh   Datei, um sicherzustellen, dass ein Anruf an dir.ksh   ist enthalten.

     

VERFÜGBARKEIT

     

MKS Toolkit für Power User MKS   Toolkit für Systemadministratoren MKS   Toolkit für Entwickler MKS Toolkit für   Interoperabilität MKS Toolkit für   Professionelle Entwickler MKS Toolkit   für Enterprise Entwickler MKS Toolkit   für Enterprise-Entwickler 64-Bit   Ausgabe

    
beggs 12.06.2009 02:41
quelle
2

Normalerweise verwende ich eine Subshell für diese Art von Sache:

%Vor%

Dies ändert sich in das Verzeichnis tmp und erstellt eine Datei namens tmpfile in diesem Verzeichnis. Nachdem die Subshell zurückgegeben wurde, wird das aktuelle Verzeichnis wiederhergestellt, so wie es vor dem Start der Subshell war. Dies liegt daran, dass jede Shell-Instanz ihre eigene Vorstellung davon hat, was das "aktuelle Verzeichnis" ist, und das Ändern des aktuellen Verzeichnisses in einer Subshell hat keine Auswirkungen auf die Shell, die sie aufgerufen hat.

    
Greg Hewgill 12.06.2009 01:38
quelle
0

Wenn Ihr System den Pushd-Befehl nicht erkennt, überprüfen Sie Ihre profile.ksh-Datei, um sicherzustellen, dass ein Aufruf von dir.ksh enthalten ist.

    
Suvesh Pratapa 12.06.2009 01:40
quelle

Tags und Links