Ja und nein. In einer POSIX-Umgebung müssen sich die Dienstprogramme wie in der Spezifikation beschrieben verhalten. In der Praxis bedeutet dies, dass konforme Versionen der Dienstprogramme in vorhanden sein müssen $PATH
. Wenn Sie Ihr Programm jedoch auf einem POSIX-kompatiblen System ausführen, führen Sie es möglicherweise in einer nicht konformen Umgebung aus. In der Praxis kommt es häufig vor, dass das Betriebssystem über einen Legacy-Modus und einen POSIX-Modus verfügt und sich standardmäßig im Legacy-Modus befindet. Schlimmer als das Fehlen einiger Befehle, weist der Legacy-Modus häufig Inkompatibilitäten auf, z. B. Optionen mit unterschiedlichen Bedeutungen.
Sie können ein Gut PATH
mit abrufen getconf
. Natürlich ist es schwierig, da getconf
im Original $PATH
möglicherweise nicht das richtige ist. Der Befehl Application Usage for zeigt eine Möglichkeit, dies zu tun:
command -p getconf PATH
Soweit ich die Spezifikation verstehe, ist dies nicht erforderlich, wenn Sie Ihr Programm in einer POSIX-konformen Umgebung ausführen. und wenn Sie Ihr Programm nicht in einer POSIX-konformen Umgebung ausführen, gilt POSIX nicht. Diese Anwendungsnutzung kann jedoch als Empfehlung verstanden werden: Wenn dies nicht funktioniert, können Sie sich berechtigt fühlen, sich bei Ihrem Anbieter zu beschweren, dass alles, was er in Bezug auf den Buchstaben der POSIX-Spezifikation tut, nicht seinem Geist entspricht.
getconf PATH
im Anwendungsbereich nicht einmal bemerkt . Vielen Dank!