पूर्णता के लिए, यहां कुछ 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। बहुत धन्यवाद!