Saturday 15 May 2010

bash -c has different argument semantics ($1 becomes $0!) -


  $ bash -c 'प्रतिध्वनि "0 है $ 0 1 $ 1 है' abc def 0 है abc 1 def $ गूंज 'गूंज' 0 है $ 0 1 $ 1 है '' & gt; Bashtest $ bash bashtest abc def 0 है bashtest 1 abc है   

दूसरा रन समतुल्य है अगर मैं शैशंग के साथ एक शैलशिप में बैश परीक्षण कर रहा हूं और फिर इसे सीधे चला गया ...

असल में मैं सोच रहा हूं कि एबीसी हमेशा क्यों नहीं $ 1 है यह $ 0 हो जाता है जब bash -c के साथ चलते हैं।

मुझे यह भी पता नहीं था। लेकिन इसका उल्लेख है:

-c स्ट्रिंग: यदि -c विकल्प मौजूद है, तो आदेश स्ट्रिंग से पढ़े जाते हैं। यदि स्ट्रिंग के बाद कोई तर्क हैं, तो वे $ 0 से शुरू होने वाली स्थितिगत मानदंडों को सौंपे जाते हैं।

एगुमेंट्स अनुभाग में एक और अधिक विस्तृत व्याख्या है:

ARGUMENTS

यदि विकल्प विकल्प प्रसंस्करण के बाद ही रह गए हैं, और न ही -c और न ही -s विकल्प दिया गया है, तो पहले तर्क को एक फ़ाइल का नाम माना जाता है शेल कमांड यदि इस फ़ंक्शन में बाश लागू किया जाता है, तो $ 0 को फ़ाइल के नाम पर सेट किया जाता है, और स्थितित्मक पैरामीए ???? टीयर बाकी तर्कों के लिए सेट हैं बाश पढ़ता है और निष्पादित करता है ??? इस फाइल के मैंड्स, फिर बाहर निकलता है बाश की निकास स्थिति बाहर निकलने की स्थिति है ???? स्क्रिप्ट में निष्पादित अंतिम कमांड के tus यदि कोई कमांड निष्पादित नहीं किया जाता है, तो निकास की स्थिति 0 है। वर्तमान निर्देशिका में फाइल को खोलने का एक प्रयास पहले किया गया है, और, अगर कोई फ़ाइल नहीं मिली है, तो शेल स्क्रिप्ट के लिए PATH में निर्देशिका खोजता है।

No comments:

Post a Comment