यह बहुत शेल पर निर्भर करता है। यदि हम केवल 4 मुख्य शेल परिवारों को देखते हैं (बॉर्न, csh, आरसी, मछली):
बॉर्न परिवार
यही कारण है कि बॉर्न शैल और अपने सभी वेरिएंट और ksh
, bash
, ash
/ dash
, zsh
, yash
।
var=23
: यह सही वैरिएबल असाइनमेंट सिंटैक्स है: एक शब्द जिसमें बिना अक्षरों के, अंकों या अंडरस्कोर होते हैं, उसके बाद एक अनक्वॉट =
होता है जो कमांड तर्क से पहले दिखाई देता है (यहां यह अपने आप है)
var =23
तर्क के रूप में var
कमांड =23
( एक विशेष ऑपरेटर को छोड़कर, zsh
जहां कमांड =something
के पथ पर विस्तार होता है something
। यहां, आपको एक त्रुटि प्राप्त होने 23
की संभावना है क्योंकि एक वैध कमांड नाम होने की संभावना नहीं है)।
var= 23
: var=
एक कमांड नाम के बाद एक असाइनमेंट 23
। इसका अर्थ है कि इसके पर्यावरण ( रिक्त मान के साथ पर्यावरण चर) के 23
साथ निष्पादित करना ।var=
var
var = 23
, var
कमांड के साथ =
और 23
तर्क के रूप में। echo = 23
उदाहरण के लिए प्रयास करें ।
Csh परिवार
csh
और tcsh
। वैरिएबल असाइनमेंट में set var = value
स्केलर वेरिएबल्स के लिए सिंटैक्स, set var = (a b)
एरेज़ के लिए, setenv var value
पर्यावरण वेरिएबल्स के लिए, @ var=1+1
असाइनमेंट और अंकगणितीय मूल्यांकन के लिए होते हैं।
इसलिए:
var=23
केवल var=23
कमांड का आह्वान कर रहा है ।
var =23
तर्क के रूप में var
कमांड को आमंत्रित कर रहा =23
है।
var= 23
तर्क के रूप में var=
कमांड को आमंत्रित कर रहा 23
है
var = 23
तर्कों के var
साथ =
और आदेश को लागू कर रहा 23
है।
आर सी परिवार
वह है rc
, es
और akanga
। उन के गोले में, चर सरणियों हैं और कार्य के साथ कर रहे हैं var = (foo bar)
, के साथ var = foo
के लिए कम किया जा रहा var = (foo)
है (एक साथ एक सरणी foo
तत्व) और var =
के लिए कम var = ()
(कोई तत्व के साथ सरणी, उपयोग var = ''
एक खाली तत्व के साथ एक सरणी के लिए)।
किसी भी स्थिति में, रिक्त स्थान (टैब या टैब) के आसपास =
की अनुमति है और वैकल्पिक है। तो उन गोले में वे 4 कमांड समतुल्य हैं और var = (23)
एक तत्व के साथ एक सरणी असाइन करने के लिए बराबर हैं 23
।
मछली
में fish
, चर असाइनमेंट सिंटैक्स है set var value1 value2
। जैसे rc
, चर, सरणियाँ हैं।
तो व्यवहार के साथ भी ऐसा ही होगा csh
, सिवाय इसके कि fish
आप =
इसके नाम के साथ कमांड नहीं चलने देंगे । यदि आपके पास ऐसा कोई आदेश है, तो आपको sh
उदाहरण के लिए इसे लागू करने की आवश्यकता है sh -c 'exec weird===cmd'
:।
सब तो var=23
और var= 23
यदि आपको कोई त्रुटि दे देंगे, var =23
कॉल करेंगे var
के साथ आदेश =23
तर्क के रूप में और var = 23
कॉल करेंगे var
के साथ आदेश =
और 23
तर्क के रूप में।