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 -a
Option für ihre integrierten exec
Befehle.)
execline
Laurent Bercotexecline
kommt mit einem exec
Befehl . Um das Beispiel von M. Chazelas zu kopieren, müsste man ein execline
Skript wie
#! / command / execlineb -P
exec -a zzz ps -f
Bercots exec
ist 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 exec
zu ü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 exec
Befehl. Um das Beispiel von M. Chazelas zu kopieren, hätte man ein nosh
Skript wie
#! / bin / nosh
exec -a zzz ps -f
Obwohl es ein nosh
integrierter Befehl exec
ist , 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 exec
zu ü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 runargv0
Befehl . 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 exec
zu ü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 chpst
Befehl . 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 exec
zu ü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
runit
ungern gewandt habesystemd
, bin ich sehr froh, vorgestellt zu werdennosh
. Danke vielmals!