Kann jemand diese Tools nach Portabilität ordnen? Welche davon ist sicher selbst auf den minimalsten *nix-Systemen zu finden? Ist einer von ihnen 100% sicher, dass er anwesend ist? Meine Vermutung ist, dass die Reihenfolge die folgende ist:
- Ach
- sed
- sch
- Perle
Während ich mir vorstelle, dass es Systeme gibt, die standardmäßig keine Bourne-Shell verwenden, einige Shell wird standardmäßig vorhanden sein, wird das immer unter /bin/sh
sein ? Vermutlich nicht, wenn es sich nicht um eine Granate vom Typ Bourne handelt. Beide awk
und sed
haben Seiten, die sie in der POSIX-Spezifikation erklären, also werden sie vermutlich immer vorhanden sein. Stimmt das?
Kann ich sicher sein dass beide auf keinem *nix installiert werden? Einschließlich eingebetteter Systeme?
Akzeptierte Antwort:
Welche von sed, awk, perl und sh ist die portabelste?
sed
, sh
und awk
sind portabel, was durch POSIX, perl
spezifiziert wird nicht durch einen Standard unterstützt wird.
Kann jemand diese Tools nach Portabilität ordnen?
Wenn Sie sich an konformen Code halten, sollte es keine Portierbarkeitsordnung für die drei POSIX-Befehle geben.
Welches davon ist mit Sicherheit selbst auf den minimalsten *nix-Systemen zu finden?
Die drei POSIX-Dienstprogramme sind zusammen mit vielen anderen Dienstprogrammen obligatorisch, damit ein Betriebssystem POSIX ist. Es gibt jedoch Betriebssysteme, denen einige davon aufgrund von Minimierung fehlen oder die unvollständige/nicht konforme Implementierungen bereitstellen.
Tatsächlich würden die meisten (wenn nicht alle) freien und Open-Source-Unix-ähnlichen Betriebssysteme den Konformitätsprozess wahrscheinlich nicht bestehen, sollten sie es versuchen, und sie versuchen es sowieso nie.
Ist einer von ihnen 100 % sicher, dass er anwesend ist?
Ich wäre überrascht, ein *nix-ähnliches Betriebssystem zu finden, dem eine auf Bourne-Syntax basierende Shell fehlt, aber alles ist möglich, insbesondere bei eingebetteten Systemen.
Meine Vermutung ist, dass die Reihenfolge wie folgt ist:
Irgendeine Shell wird standardmäßig vorhanden sein, wird das immer unter /bin/sh sein?
/bin/sh
ist wahrscheinlich eine Shell der Bourne-Syntaxfamilie, aber es ist nicht garantiert, dass sie POSIX-kompatibel ist, nicht einmal in en POSIX-kompatiblen Systemen. Zum Beispiel ist es /usr/xpg4/bin/sh
unter Solaris 10 und älter während /bin/sh
ist die ältere ursprüngliche Bourne-Shell, die nicht POSIX ist.