आपका सवाल बहुत मायने नहीं रखता। आप कहें तो सबसे पहले
one=1
two=""
three=3
four=""
for num in $one $two $three $four
do
︙
तब for
कथन की व्याख्या की जाती है
for num in 1 3
और इसलिए वहाँ के साथ केवल दो पुनरावृत्तियों, कर रहे हैं num
के बराबर 1
और 3
। यदि आप (अशक्त), और (अशक्त) के num
बराबर चार पुनरावृत्तियाँ चाहते हैं , तो आपको कहने की आवश्यकता है1
3
for num in "$one" "$two" "$three" "$four"
जब तक आपके पास एक अच्छा कारण नहीं है, आपको शेल चर संदर्भों को उद्धृत करना चाहिए, और आपको यकीन है कि आप जानते हैं कि आप क्या कर रहे हैं।
इसलिए,
for num in "$one" "$two" "$three" "$four"
do
echo "num is $num"
done
में परिणाम होगा
num is 1
num is
num is 3
num is
अब, अगर आप चाहते हैं कहने के लिए परिणाम 1
, 0
, 3
, 0
, यह कहने का एक सरल बात है
for num in "$one" "$two" "$three" "$four"
do
if [ "$num" = "" ]
then
num=0
fi
echo "num is $num"
done
ध्यान दें कि
- आपके पास पहले और बाद में व्हाट्सएप होना चाहिए
[
,
- आपके पास पहले और बाद में व्हाट्सएप होना चाहिए
=
,
- आपके पास
]
(और इसके बाद, यदि इसके बाद कुछ और है), और इससे पहले आपके पास व्हाट्सएप होना चाहिए , और
fi
है if
पीछे की ओर से लिखे गए।
लेकिन आपके प्रश्न का शीर्षक "परेशान चर" का उल्लेख करता है।
two
और four
कर रहे हैं सेट एक खाली स्ट्रिंग के लिए;
five
और six
(और orange
, pumpkin
, tiger
, और अन्य संभावित चर नाम की एक अर्ध अनंत सूची) कर रहे हैं सेट नहीं । एक अंतर है। अगर है कि क्या आप में रुचि रखते हैं, तो आप, एक अलग सवाल पूछने के लिए की जरूरत है क्योंकि अगर आप ऐसा करेंगे
for num in "$one" "$two" "$three" "$four" "$five" "$six" "$orange" "$pumpkin" "$tiger"
do
︙
तो यह भेद करने के लिए असंभव हो जाएगा five
, six
, orange
,
pumpkin
, और tiger
, से पुनरावृत्तियों two
और four
पुनरावृत्तियों -
num
सभी सात मामलों में एक खाली स्ट्रिंग पर सेट कर दिया जाएगा। आप परीक्षण करने की आवश्यकता होगी $four
और $five
सीधे (आदि) चर।
पुनश्च एक नया सवाल मत पूछो; एक खोज करो। इसका उत्तर पहले दिया जा चुका है।