पूर्णता के लिए, यहां कुछ C और C ++ प्रोग्राम ऐसे हैं जिन्हें लोग पहले ही संकलित कर चुके हैं ।
आप जिस टिप्पणी की ओर संकेत करते हैं, उसे करने के लिए "ऐसा करने का" POSIX तरीका पूछने के लिए आपकी स्पष्ट प्रेरणा, यह जानना है कि कोई व्यक्ति डेबियन अल्मक्विस्ट शेल, MirBSD फटे शेल (संस्करण R50e से पहले) जैसे शेल के साथ इस अंत को कैसे प्राप्त कर सकता है। ), डेबियन पोसिक्स-कंप्लेंट ऑर्डिनरी शेल, और अन्य गोले जिसमें 0 वें तर्क को सेट करने के लिए एक्सटेंशन नहीं है जैसा कि बॉर्न अगेन और जेड गोले हैं। ('93 Korn खोल, और संस्करण R50e से MirBSD Korn खोल, बाद में -a
अपने अंतर्निहित exec
कमांड के लिए एक विकल्प का समर्थन करते हैं )।
execline
लॉरेंट बर्कोट execline
एक exec
कमांड के साथ आता है । इसलिए एम। चेज़लस के उदाहरण की नकल करने के लिए एक execline
स्क्रिप्ट होगी जैसे कि
#! / कमांड / एग्जीक्यूट-पी
exec -a zzz ps -f
बरकोट का exec
एक सामान्य बाहरी कमांड है, बेशक। तो कोई इसे डेबियन अल्मक्विस्ट शेल स्क्रिप्ट के भीतर से चला सकता है। वर्तमान शेल प्रोग्राम exec
को ओवरले करने के लिए exec
, बर्कॉट के साथ शेल के ओवरले का उपयोग किया जाएगा , जो बदले में 0 वें तर्क को सेट करेगा और लक्ष्य प्रोग्राम के साथ ओवरले करेगा:
exec / command / exec -a "$ argv0" printer.sh
nosh
नोश टूलसेट में एक exec
कमांड शामिल है । एम। चेज़लस के उदाहरण की नकल करने के लिए एक nosh
स्क्रिप्ट होगी जैसे कि
#! / Bin / nosh
exec -a zzz ps -f
हालाँकि यह एक nosh
बिल्ट-इन है, यह एक साधारण बाहरी कमांड के रूप exec
में भी सुलभ है। तो कोई इसे डेबियन अल्मक्विस्ट शेल स्क्रिप्ट के भीतर से चला सकता है। वर्तमान शेल प्रोग्राम exec
को ओवरले करने के लिए , शेल टूल का उपयोग नोश टूलसेट के साथ ओवरले करने के लिए exec
करेगा, जो कि टारगेट प्रोग्राम के साथ 0 वें तर्क और ओवरले को सेट करेगा:
निष्पादित / usr / स्थानीय / बिन / निष्पादन -a "$ argv0" printer.sh
perp
वेन मार्शल के पेर में एक runargv0
कमांड शामिल है । यह एक साधारण बाहरी कमांड है। तो कोई इसे डेबियन अल्मक्विस्ट शेल स्क्रिप्ट के भीतर से चला सकता है। वर्तमान शेल प्रोग्राम exec
को ओवरले करने के लिए शेल के टूलप्लेट के साथ शेल के ओवरले का उपयोग किया जाएगा runargv0
, जो कि टारगेट प्रोग्राम के साथ 0 वें तर्क और ओवरले को सेट करेगा:
निष्पादित runargv0 printer.sh "$ argv0"
चलाओ
जेरिट पपी के रनिट में एक chpst
कमांड शामिल है । यह एक साधारण बाहरी कमांड है। तो कोई इसे डेबियन अल्मक्विस्ट शेल स्क्रिप्ट के भीतर से चला सकता है। वर्तमान शेल प्रोग्राम exec
को ओवरले करने के लिए , शेल के रनटाइम के साथ ओवरले का उपयोग किया जाएगा chpst
, जो बदले में 0 वें तर्क को सेट करेगा और लक्ष्य प्रोग्राम के साथ ओवरले करेगा:
निष्पादित chpst -b "$ argv0" printer.sh
runit
अनिच्छा से एक शरणार्थी के रूप में बदल गयाsystemd
, मुझे बहुत खुशी हो रही हैnosh
। बहुत धन्यवाद!