एक बैश स्क्रिप्ट जिसमें शामिल है
for i in {a,b}-{1,2}; do
echo $i;
done
प्रिंट
a-1
a-2
b-1
b-2
जब निष्पादित किया गया। यह वही है जिसकी मुझे उम्मीद थी - जैसा कि {a,b}
निर्माण का विस्तार है।
हालाँकि, जब (एक और) स्क्रिप्ट होती है
v={a,b}-{1,2}
echo $v
यह प्रिंट करता है
{a,b}-{1,2}
जो मुझे उम्मीद नहीं थी। मुझे उम्मीद थी कि यह प्रिंट होगा a-1 a-2 b-1 b-2
। जाहिर है, {a,b}
निर्माण का विस्तार नहीं है।
मैं इसका विस्तार कर सकता हूं
v=$(echo {a,b}-{1,2})
इन टिप्पणियों के आधार पर मेरे दो प्रश्न हैं: 1) {a,b}
निर्माण का विस्तार कब हुआ है? 2) $(echo {a,b}-{1,2})
आवश्यकता होने पर विस्तार को ट्रिगर करने का पसंदीदा तरीका है?
v=a-1 a-2
का मतलब assign 'a-1' to variable v and run 'a-2'
v=(a-1 a-2)
है चर के लिए सरणी असाइन करता है v
। v+=(b-1 b-2)
इसे जोड़ता है।
=
। उदाहरण के लिए,v=a-1 a-2
काम नहीं करेगा।