লুপের জন্য আনসেট ভেরিয়েবলের পরীক্ষা করা


0

আমি একটি স্ক্রিপ্ট লিখেছি যা কোনও ফাইলকে বিশ্লেষণ করে এবং ফাইলের মধ্যে একটি নির্দিষ্ট প্রস্থ অনুযায়ী ভেরিয়েবল সেট করে।

আমি তারপরে প্রতিটি ভেরিয়েবল পরীক্ষা করতে চাই এবং যদি এটি ফাঁকা হয় তবে "0" এ সেট করুন। এর একটি সহজ প্রকরণ হ'ল:

one=1  
two=""  
three=3  
four=""  

for num in $one $two $three $four  
do  
   echo num is $num  
done

আমাকে এর একটি আউটপুট দেয়:

num is 1   
num is 3

আমি যা করতে চাই তা হল কোড if $two is null then two=0

আমি এটা কিভাবে করবো?


সতর্কতা: ড্রাইভ বাই প্রশ্ন। ওপি তার (বা তার) অ্যাকাউন্ট তৈরি করেছে, 18 মিনিট পরে এই প্রশ্ন জিজ্ঞাসা করেছিল, এবং দুই মিনিট আগে অদৃশ্য হয়ে যায় (? প্রশ্নটি 9 ডিসেম্বর 15:30 এ জিজ্ঞাসা করা হয়েছিল; ব্যবহারকারী সর্বশেষ 9 ডিসেম্বর 15:28 এ দেখেছিলেন), সম্ভবত সফর না করেই।
স্কট

উত্তর:



0

আপনার প্রশ্নটি খুব একটা বোঝায় না। সবার আগে, যদি আপনি বলেন

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(ইত্যাদি) ভেরিয়েবল পরীক্ষা করতে হবে ।

পিএস একটি নতুন প্রশ্ন জিজ্ঞাসা করবেন না; একটি অনুসন্ধান করুন। এর আগেও উত্তর দেওয়া হয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.