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 exec
komutlarına bir seçenek sunar .)
execline
Laurent Bercot enexecline
birlikte gelen bir exec
komuta . Yani, M. Chazelas'ın örneğini çoğaltmak için, birinin şöyle bir execline
senaryosu 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 exec
0'cı exec
argü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 exec
komut içerir . M. Chazelas'ın örneğini çoğaltmak için birinin şöyle bir nosh
senaryosu olacaktı
# / Bin / nosh
yürütmek -a zzz ps -f
Bir olmasına rağmen nosh
dahili, bu exec
ise 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 exec
araç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 runargv0
emir 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 exec
perp 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 chpst
komut . 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 exec
runit 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!