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