ऑनवर्क्स लिनक्स और विंडोज ऑनलाइन वर्कस्टेशन

प्रतीक चिन्ह

वर्कस्टेशन के लिए मुफ्त होस्टिंग ऑनलाइन

<पिछला | विषय-सूची | अगला>

चर और अचर को मान निर्दिष्ट करना

यहीं पर विस्तार के बारे में हमारा ज्ञान वास्तव में काम करना शुरू करता है। जैसा कि हमने देखा है, वेरिएबल्स को इस तरह से मान निर्दिष्ट किए जाते हैं:

परिवर्तनशील=मूल्य

जहां परिवर्तनशील चर का नाम है और मूल्य एक स्ट्रिंग है. कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, शेल किसी वेरिएबल को निर्दिष्ट डेटा के प्रकार की परवाह नहीं करता है; यह उन सभी को स्ट्रिंग के रूप में मानता है। आप इसका उपयोग करके शेल को असाइनमेंट को पूर्णांकों तक सीमित करने के लिए बाध्य कर सकते हैं घोषित के साथ कमान -i विकल्प, लेकिन, वैरिएबल को केवल पढ़ने के लिए सेट करने की तरह, यह शायद ही कभी किया जाता है।

ध्यान दें कि किसी असाइनमेंट में, वेरिएबल नाम, बराबर चिह्न और मान के बीच कोई रिक्त स्थान नहीं होना चाहिए। तो मूल्य में क्या शामिल हो सकता है? कुछ भी जिसे हम एक स्ट्रिंग में विस्तारित कर सकते हैं:


ए=जेड

बी = "एक स्ट्रिंग"

सी = "एक स्ट्रिंग और $ बी"


d=$(ls -l foo.txt) e=$((5 * 7)) f='\t\ta string\n'

# स्ट्रिंग "z" को वेरिएबल a पर असाइन करें।

# एंबेडेड रिक्त स्थान उद्धरण चिह्नों के भीतर होने चाहिए.

# चर जैसे अन्य विस्तार भी हो सकते हैं

# असाइनमेंट में विस्तार किया गया.

# एक आदेश के परिणाम.

# अंकगणितीय विस्तार.

# टैब और न्यूलाइन जैसे एस्केप सीक्वेंस।

ए=जेड

बी = "एक स्ट्रिंग"

सी = "एक स्ट्रिंग और $ बी"


d=$(ls -l foo.txt) e=$((5 * 7)) f='\t\ta string\n'


की छवि

एकाधिक परिवर्तनीय असाइनमेंट एक ही पंक्ति में किए जा सकते हैं:



a=5 b='एक स्ट्रिंग'

a=5 b='एक स्ट्रिंग'


विस्तार के दौरान, परिवर्तनीय नाम वैकल्पिक घुंघराले ब्रेसिज़ "{}" से घिरे हो सकते हैं। यह उन मामलों में उपयोगी है जहां एक परिवर्तनीय नाम इसके आस-पास की शर्तों के कारण अस्पष्ट हो जाता है।


मूलपाठ। यहां, हम किसी फ़ाइल का नाम बदलने का प्रयास करते हैं मेरी फाइल सेवा मेरे myfile1, एक चर का उपयोग करते हुए:



[मुझे@लिनक्सबॉक्स ~]$ फ़ाइलनाम='मेरीफ़ाइल' [मुझे@लिनक्सबॉक्स ~]$ $फ़ाइलनाम स्पर्श करें [मुझे@लिनक्सबॉक्स ~]$ एमवी $फ़ाइलनाम $फ़ाइलनाम1

एमवी: `मायफाइल' के बाद गंतव्य फ़ाइल ऑपरेंड गुम है, अधिक जानकारी के लिए `एमवी --हेल्प' आज़माएं।

[मुझे@लिनक्सबॉक्स ~]$ फ़ाइलनाम='मेरीफ़ाइल' [मुझे@लिनक्सबॉक्स ~]$ $फ़ाइलनाम स्पर्श करें [मुझे@लिनक्सबॉक्स ~]$ एमवी $फ़ाइलनाम $फ़ाइलनाम1

एमवी: `मायफाइल' के बाद गंतव्य फ़ाइल ऑपरेंड गुम है, अधिक जानकारी के लिए `एमवी --हेल्प' आज़माएं।


यह प्रयास विफल हो जाता है क्योंकि शेल दूसरे तर्क की व्याख्या करता है mv एक नए (और खाली) वेरिएबल के रूप में कमांड। समस्या को इस तरह दूर किया जा सकता है:



[मुझे@लिनक्सबॉक्स ~]$ एमवी $फ़ाइलनाम ${फ़ाइलनाम}1

[मुझे@लिनक्सबॉक्स ~]$ एमवी $फ़ाइलनाम ${फ़ाइलनाम}1


आसपास के ब्रेसिज़ जोड़ने से, शेल अब अनुगामी की व्याख्या नहीं करता है 1 परिवर्तनीय नाम के भाग के रूप में।

हम इस अवसर का उपयोग अपनी रिपोर्ट में कुछ डेटा जोड़ने के लिए करेंगे, अर्थात् रिपोर्ट बनाने की तारीख और समय और निर्माता का उपयोगकर्ता नाम:



#! / Bin / bash

# सिस्टम सूचना पृष्ठ को आउटपुट करने का प्रोग्राम TITLE='$HOSTNAME के ​​लिए सिस्टम सूचना रिपोर्ट'

CURRENT_TIME=$(दिनांक +"%x %r %Z")

TIMESTAMP='$USER द्वारा $CURRENT_TIME जेनरेट किया गया'


प्रतिध्वनि"

$शीर्षक

$शीर्षक

$टाइमस्टैम्प

"

#! / Bin / bash

# सिस्टम सूचना पृष्ठ को आउटपुट करने का प्रोग्राम TITLE='$HOSTNAME के ​​लिए सिस्टम सूचना रिपोर्ट'

CURRENT_TIME=$(दिनांक +"%x %r %Z")

TIMESTAMP='$USER द्वारा $CURRENT_TIME जेनरेट किया गया'


प्रतिध्वनि"

$शीर्षक

$शीर्षक

$टाइमस्टैम्प

"


OnWorks पर शीर्ष OS क्लाउड कंप्यूटिंग: