Der Vollständigkeit halber sind hier einige C- und C ++ - Programme aufgeführt, die die Benutzer bereits kompiliert haben.
Nach dem Kommentar, auf den Sie verweisen, ist Ihre offensichtliche Motivation, nach einer "POSIX - Methode" zu fragen, zu wissen, wie man dasselbe Ziel mit Shells wie der Debian Almquist - Shell, der MirBSD Korn - Shell (vor Version R50e) erreichen kann ), die Debian-POSIX-kompatible Ordinary-Shell und andere Shells, die keine Erweiterungen zum Setzen des 0. Arguments wie die Bourne Again- und Z-Shells haben. (Die '93 Korn-Shell und die MirBSD Korn-Shell ab Version R50e unterstützen eine -aOption für ihre integrierten execBefehle.)
execline
Laurent Bercotexecline kommt mit einem execBefehl . Um das Beispiel von M. Chazelas zu kopieren, müsste man ein execlineSkript wie
#! / command / execlineb -P
exec -a zzz ps -f
Bercots execist natürlich ein gewöhnlicher Befehl von außen. Man könnte es also in einem Debian Almquist Shell-Skript ausführen. Um das aktuelle Shell-Programm execzu überlagern exec, würde man die Shell verwenden, um mit Bercot zu überlagern , was wiederum das 0. Argument setzen und mit dem Zielprogramm überlagern würde:
exec / command / exec -a "$ argv0" printer.sh
Nein
Das nosh-Toolset enthält einen execBefehl. Um das Beispiel von M. Chazelas zu kopieren, hätte man ein noshSkript wie
#! / bin / nosh
exec -a zzz ps -f
Obwohl es ein noshintegrierter Befehl execist , kann auf diesen auch als gewöhnlicher externer Befehl zugegriffen werden. Man könnte es also in einem Debian Almquist Shell-Skript ausführen. Um das aktuelle Shell-Programm execzu überlagern, würde man die Shell zum Überlagern mit dem nosh-Toolset verwenden exec, das wiederum das 0-te Argument setzt und mit dem Zielprogramm überlagert:
exec / usr / local / bin / exec -a "$ argv0" printer.sh
perp
Wayne Marshalls Täter enthält einen runargv0Befehl . Dies ist ein gewöhnlicher externer Befehl. Man könnte es also in einem Debian Almquist Shell-Skript ausführen. Um das aktuelle Shell-Programm execzu überlagern, würde man die Shell zum Überlagern mit dem perp-Toolset verwenden runargv0, das wiederum das 0-te Argument setzt und mit dem Zielprogramm überlagert:
exec runargv0 printer.sh "$ argv0"
starte es
Gerrit Papes Runit enthält einen chpstBefehl . Dies ist ein gewöhnlicher externer Befehl. Man könnte es also in einem Debian Almquist Shell-Skript ausführen. Um das aktuelle Shell-Programm execzu überlagern, würde man die Shell zum Überlagern mit runits verwenden chpst, was wiederum das 0. Argument setzen und mit dem Zielprogramm überlagern würde:
exec chpst -b "$ argv0" printer.sh
runitungern gewandt habesystemd, bin ich sehr froh, vorgestellt zu werdennosh. Danke vielmals!