यह बहुत शेल पर निर्भर करता है। यदि हम केवल 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तर्क के रूप में।