আপনার প্রশ্নটি খুব একটা বোঝায় না। সবার আগে, যদি আপনি বলেন
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
(ইত্যাদি) ভেরিয়েবল পরীক্ষা করতে হবে ।
পিএস একটি নতুন প্রশ্ন জিজ্ঞাসা করবেন না; একটি অনুসন্ধান করুন। এর আগেও উত্তর দেওয়া হয়েছে।