Bütünlüğü için, burada insanların zaten derlemiş olduğu bazı C ve C ++ programları .
İşaret ettiğiniz yorumdan yola çıkarak, bunu yapmanın "POSIX yolunu" isteme konusundaki bariz motivasyonunuz, Debian Almquist kabuğu, MirBSD Korn kabuğu (R50e sürümünden önce) gibi kabukları kullanarak bu aynı sonuca nasıl ulaşılabileceğini bilmek demektir. ), Debian POSIX Uyumlu Sıradan kabuk ve 0'ın argümanını Bourne Again ve Z kabukları gibi ayarlamaya yönelik uzantıları olmayan diğer kabuklar. ('93 Korn kabuğu ve R50e sürümünden itibaren MirBSD Korn kabuğu -a, yerleşik execkomutlarına bir seçenek sunar .)
execline
Laurent Bercot enexecline birlikte gelen bir execkomuta . Yani, M. Chazelas'ın örneğini çoğaltmak için, birinin şöyle bir execlinesenaryosu olacaktı:
#! / command / execlineb -P
yürütmek -a zzz ps -f
Bercotlar exec, elbette sıradan bir dış emirdir. Böylece biri onu bir Debian Almquist Shell senaryosundan çalıştırabilir. Mevcut kabuk programını bindirmek için, kabuk exec0'cı execargümanı ayarlayan ve hedef program ile bindiren Bercot ile kaplamak için bir kabuk kullanılır :
exec / command / exec -a "$ argv0" printer.sh
nosh
Nosh araç seti bir execkomut içerir . M. Chazelas'ın örneğini çoğaltmak için birinin şöyle bir noshsenaryosu olacaktı
# / Bin / nosh
yürütmek -a zzz ps -f
Bir olmasına rağmen noshdahili, bu execise aynı zamanda sıradan bir dış komut olarak erişilebilir. Böylece biri onu bir Debian Almquist Shell senaryosundan çalıştırabilir. Mevcut kabuk programını bindirmek için biri kabuk execaraçlarını, nosh araç takımına bindirmek için kullanır exec, ki bu da 0 argümanını ayarlar ve hedef program ile kaplar:
exec / usr / yerel / bin / exec - Bir "$ argv0" printer.sh
ÇaIan
Wayne Marshall'ın suçu bir runargv0emir içeriyor . Bu sıradan bir dış komuttur. Böylece biri onu bir Debian Almquist Shell senaryosundan çalıştırabilir. Mevcut kabuk programını bindirmek için biri kabuğun execperp araç takımına bindirilmesi için kullanılacaktır runargv0, bu da 0'ın argümanını ayarlayacak ve hedef program ile bindirecektir:
exec runargv0 printer.sh "$ argv0"
runit
Gerrit Pape en runit içeren bir chpstkomut . Bu sıradan bir dış komuttur. Böylece biri onu bir Debian Almquist Shell senaryosundan çalıştırabilir. Mevcut kabuk programını bindirmek için biri kabuğun execrunit ile üst üste binmesi için kullanılır chpst, bu da 0'ın argümanını ayarlar ve hedef program ile kaplar :
exec chpst -b "$ argv0" printer.sh
runitİsteksizce gelen bir mülteci olaraksystemd, tanıştığıma çok memnun oldumnosh. Çok teşekkürler!