डिक्लेयर और टाइपसेट में क्या अंतर है


22

क्या कोई भी वास्तविक जीवन के उदाहरणों के साथ घोषणा और टाइपसेट के बीच अंतर समझा सकता है।

जवाबों:


27

में bash, typesetऔर declareबिल्कुल समान हैं। अंतर केवल इतना है कि typesetइसे अप्रचलित माना जाता है।

typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
    Set variable values and attributes.

    Obsolete.  See `help declare'.

मैन पेज भी उन्हें एक ही सांस में सूचीबद्ध करता है:

declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
    Declare variables and/or give them attributes.

typesetउदाहरण के लिए, कुछ अन्य गोले के लिए पोर्टेबल है ksh93। यदि आप क्रॉस-शेल पोर्टेबिलिटी के लिए लक्ष्य कर रहे हैं, तो उपयोग करें typeset(और सुनिश्चित करें कि जिस तरह से आप इसे कॉल कर रहे हैं वह पोर्टेबल है)। यदि आप ऐसी पोर्टेबिलिटी की परवाह नहीं करते हैं, तो उपयोग करें declare


क्या आप कृपया इसका कुछ उदाहरण प्रदान कर सकते हैं कि यह कहां और क्यों बैश स्क्रिप्ट में उपयोग किया गया है
राहुल पाटिल

1
... जैसा मैंने कहा, वे बिल्कुल वैसा ही हैं। मुझे समझ में नहीं आता कि अगर वे ऐसा करते हैं तो मैं उन्हें कैसे अलग कर सकता हूं।
क्रिस डाउन

2
अच्छा था। ध्यान दें कि "अप्रचलित" सिर्फ अंदर दिखाई देता है help typeset, अंदर नहीं man typeset
फेडोरक्वी

2
@ क्रिसडाउन, आपको पता नहीं होगा कि वास्तव में typesetअप्रचलित क्यों माना जाता है?
अलेक्सज मगुरा

3

मैं एक ऐसे मामले को जानता हूं जहां declareबुराई से बचने के लिए उपयोगी है eval: चर अप्रत्यक्ष :

$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value

यह एक अच्छी टिप्पणी है, लेकिन यह उस सवाल का जवाब कैसे देता है जिसके बारे में है typesetऔर declare?
jw013

यह पहले से ही क्रिस डाउन द्वारा अच्छी तरह से उत्तर दिया गया है, मेरी प्रतिक्रिया सिर्फ एक मामला है जहां यह उपयोगी है
गाइल्स क्वेनोट

शायद मैं स्पष्ट नहीं था। टिप्पणियाँ टिप्पणियाँ होनी चाहिए, और उत्तर उत्तर होने चाहिए। यह एक टिप्पणी है, एक जवाब नहीं है।
jw013

3
मेरा स्निपेट एक टिप्पणी में स्पष्ट नहीं होगा
गाइल्स क्वेनॉट

लेकिन आप अभी भी टाइपसेट के साथ चर असाइन कर सकते हैं ... बस टाइपसेट के साथ घोषणा को बदलें और आप अभी भी एक ही परिणाम प्राप्त करते हैं।
pcarvalho
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.