आपका सवाल बहुत मायने नहीं रखता। आप कहें तो सबसे पहले
one=1
two=""
three=3
four=""
for num in $one $two $three $four
do
︙
तब forकथन की व्याख्या की जाती है
for num in 1 3
और इसलिए वहाँ के साथ केवल दो पुनरावृत्तियों, कर रहे हैं numके बराबर 1और 3। यदि आप (अशक्त), और (अशक्त) के numबराबर चार पुनरावृत्तियाँ चाहते हैं , तो आपको कहने की आवश्यकता है13
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सीधे (आदि) चर।
पुनश्च एक नया सवाल मत पूछो; एक खोज करो। इसका उत्तर पहले दिया जा चुका है।