Pour être complet, voici quelques programmes C et C ++ pour ce faire que les gens ont déjà compilés.
En vous basant sur le commentaire que vous signalez, votre motivation apparente à demander "une manière POSIX" de faire cela est de savoir comment on peut atteindre ce même but avec des shells tels que le shell Debian Almquist, le shell MirBSD Korn (avant la version R50e ), le shell ordinaire Debian conforme à POSIX et d'autres shells qui n'ont pas d'extensions pour définir le 0ème argument comme les shells Bourne Again et Z. (Le shell Korn de 1993 et le shell Korn MirBSD à partir de la version R50e prennent en charge une -aoption pour leurs execcommandes intégrées .)
execline
Laurent Bercot estexecline livré avec une execcommande . Donc, pour reproduire l'exemple de M. Chazelas, on aurait un execlinescript tel que
#! / command / execlineb -P
exec -a zzz ps -f
Bercot execest une commande externe ordinaire, bien sûr. On pourrait donc l'exécuter à partir d'un script Debian Almquist Shell. Pour superposer le programme shell actuel, on utiliserait le shell execpour superposer avec Bercot exec, qui à son tour définirait le 0ème argument et superposerait avec le programme cible:
exec / command / exec -a "$ argv0" printer.sh
bouffe
Le jeu d'outils nosh comprend une execcommande. Pour reproduire l'exemple de M. Chazelas, on aurait un noshscript tel que
#! / bin / nosh
exec -a zzz ps -f
Bien qu'il s'agisse d'une fonction noshintégrée, elle execest également accessible en tant que commande externe ordinaire. On pourrait donc l'exécuter à partir d'un script Debian Almquist Shell. Pour superposer le programme shell actuel, on utiliserait le shell execpour superposer avec le jeu d'outils nosh exec, qui à son tour définirait le 0ème argument et superposerait avec le programme cible:
exec / usr / local / bin / exec -a "$ argv0" printer.sh
perp
Le perp de Wayne Marshall comprend une runargv0commande . Il s'agit d'une commande externe ordinaire. On pourrait donc l'exécuter à partir d'un script Debian Almquist Shell. Pour superposer le programme shell actuel, on utiliserait le shell execpour superposer avec le jeu d'outils perp runargv0, qui à son tour définirait le 0ème argument et superposerait avec le programme cible:
exec runargv0 printer.sh "$ argv0"
exécuter
Le runit de Gerrit Pape comprend une chpstcommande . Il s'agit d'une commande externe ordinaire. On pourrait donc l'exécuter à partir d'un script Debian Almquist Shell. Pour superposer le programme shell actuel, on utiliserait le shell execpour superposer avec runit chpst, qui à son tour définirait le 0ème argument et superposerait avec le programme cible:
exec chpst -b "$ argv0" printer.sh
runits'est tourné à contrecœursystemd, je suis très heureux d'être présenté ànosh. Merci beaucoup!