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 -a
option pour leurs exec
commandes intégrées .)
execline
Laurent Bercot estexecline
livré avec une exec
commande . Donc, pour reproduire l'exemple de M. Chazelas, on aurait un execline
script tel que
#! / command / execlineb -P
exec -a zzz ps -f
Bercot exec
est 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 exec
pour 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 exec
commande. Pour reproduire l'exemple de M. Chazelas, on aurait un nosh
script tel que
#! / bin / nosh
exec -a zzz ps -f
Bien qu'il s'agisse d'une fonction nosh
intégrée, elle exec
est é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 exec
pour 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 runargv0
commande . 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 exec
pour 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 chpst
commande . 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 exec
pour 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
runit
s'est tourné à contrecœursystemd
, je suis très heureux d'être présenté ànosh
. Merci beaucoup!