Ksh-Funktionen in Zsh integriert?

7

Ich bin seit einiger Zeit ein Benutzer von Bash. Ich möchte jetzt mindestens eine andere Muschel lernen, also habe ich die Korn-Muschel aufgenommen. Es sieht jedoch nicht so aus, als ob Ksh seit fast zwanzig Jahren große Updates hat, und ich habe gelesen, dass Zsh Funktionen davon enthält. Ich habe viele der Shell-Vergleichsfragen im StackExchange-Netzwerk gelesen, aber keine Antwort darauf gefunden: Gibt es Funktionen von Korn Shell, die Zsh nicht enthält? Wenn ja, was sind sie?

Kazark
quelle
1
ksh befindet sich noch in der aktiven Entwicklung. Um nur die Oberfläche zu kratzen, lesen Sie meinen langen Kommentar (als Antwort) unter stackoverflow.com/questions/5479433/… . Ich benutze zsh nicht, teilweise aus geschäftlichen Gründen, aber die Antwort von bahamat unten gibt einige gute Gründe, es sich anzusehen. Viel Glück.
Shellter
2
Ich denke, zsh hat alle Hauptmerkmale von ksh93 und die meisten Nebenmerkmale, aber oft mit einer anderen Syntax für jene Merkmale, die es 1993 noch nicht gab.
Gilles 'SO - hör auf böse zu sein'

Antworten:

5

Hier ist der Wikipedia-Artikel zum Vergleich der Befehls-Shell .

Demnach ist das einzige Merkmal, das ksh hat, das zsh nicht hat, Named Parameters für benutzerdefinierte "Typen" . Es kann andere geben, da dieser Artikel keine vollständige Liste ist, insbesondere für obskure Funktionen.

Wenn Sie in die andere Richtung gehen, könnte die Antwort auf Ihre Frage ein Buch füllen (möglicherweise dieses ).

Zsh hat viele Funktionen, die ksh nicht bietet. Einige beliebte sind Befehlsstapel , Verzeichnisstapel , Verlaufsfreigabe und Eingabeaufforderung .

  • Befehlsstapel ist, wenn Sie einen Befehl eingeben und erkennen, dass Sie zuerst einen anderen Befehl ausführen sollten. Senden Sie einfach die aktuelle Zeile an den Befehlsstapel, führen Sie den anderen Befehl aus und entfernen Sie den Befehl vom Stapel. Sie können dies mehrmals tun. (zsh ist die einzige mir bekannte Shell, die dies bietet).
  • Der Verzeichnisstapel (auch bekannt als pushd/ popd) ist, wenn Sie nacheinander in Verzeichnisse wechseln und dann in umgekehrter Reihenfolge zurückkehren möchten. (Viele Muscheln bieten dies, einschließlich Bash).
  • Bei der Verlaufsfreigabe teilt jede offene Shell einen gemeinsamen Verlauf. Führen Sie einen Befehl in einem Fenster aus, wechseln Sie zu einem anderen und er ist in Ihrem Verlauf verfügbar.
  • rprompt ist genau wie Ihre Eingabeaufforderung, außer dass es richtig gerechtfertigt ist. Viele Leute legen gerne das cwdoder datein das rprompt.

Hier sind einige Diskussionen auf Stack Exchange-Websites zu zsh:

Bahamat
quelle
D'oh. Nun, laut diesem Wikipedia-Artikel ist die einzige Funktion, die ksh hat, die zsh nicht hat, Named-Parameter für benutzerdefinierte "Typen" .
Bahamat
@ Kazark: Los geht's.
Bahamat