বাশ ফাংশন থেকে বুলিয়ান ফিরিয়ে দেওয়া


211

আমি একটি বাশ ফাংশন লিখতে চাই যা কোনও ফাইলে নির্দিষ্ট বৈশিষ্ট্য রয়েছে কিনা এবং তা সত্য বা মিথ্যা প্রত্যাখ্যান করে তা পরীক্ষা করে। তারপরে আমি এটিকে আমার স্ক্রিপ্টগুলিতে "যদি" ব্যবহার করতে পারি। তবে কী ফিরব?

function myfun(){ ... return 0; else return 1; fi;}

তাহলে আমি এটি এটির মতো ব্যবহার করি:

if myfun filename.txt; then ...

অবশ্যই এটি কাজ করে না। এই কিভাবে এটি করা সম্ভব?


3
মূল functionশব্দটি ফেলে দিন , myfun() {...}যথেষ্ট
গ্লেন জ্যাকম্যান

2
যা গুরুত্বপূর্ণ তা ifহ'ল শূন্য-প্রস্থান স্থিতি myfun: যদি myfunএটির সাথে প্রস্থান হয় 0, then ...কার্যকর করা হয়; এটি অন্য কিছু হলে else ...মৃত্যুদন্ড কার্যকর করা হয়।
এলেভেক্স

7
@ নেহেড: মূলশব্দটি functionএকটি বাশিজম এবং এটি অন্য কয়েকটি শেলগুলিতে সিনট্যাক্স ত্রুটি ঘটায়। মূলত, এটি হয় অপ্রয়োজনীয় বা নিষিদ্ধ, তাই কেন এটি ব্যবহার করবেন? এটি গ্রেপ লক্ষ্য হিসাবেও কার্যকর নয়, যেহেতু এটি সেখানে নাও থাকতে পারে ( ()পরিবর্তে গ্রেপ )।
গর্ডন ডেভিসন

3
@ গর্ডন ডেভিসন: কি? অন্য শাঁস আছে? ;-)
nhed

দয়া করে 0 এবং 1 এর দেখুন ব্যবহার করবেন না stackoverflow.com/a/43840545/117471
ব্রুনো Bronosky

উত্তর:


333

সত্যের জন্য 0 এবং ভুজের জন্য 1 ব্যবহার করুন।

নমুনা:

#!/bin/bash

isdirectory() {
  if [ -d "$1" ]
  then
    # 0 = true
    return 0 
  else
    # 1 = false
    return 1
  fi
}


if isdirectory $1; then echo "is directory"; else echo "nopes"; fi

সম্পাদন করা

@ অ্যামিচায়েরের মন্তব্য থেকে, এটিও সম্ভব

isdirectory() {
  if [ -d "$1" ]
  then
    true
  else
    false
  fi
}


isdirectory() {
  [ -d "$1" ]
}

4
না আপনার এটি করার দরকার নেই - নমুনা দেখুন।
এরিক

46
ভাল পাঠযোগ্যতার জন্য আপনি 'ট্রু' কমান্ডটি ব্যবহার করতে পারেন (যা কিছুই করে না এবং সফলভাবে সম্পূর্ণ হয়, অর্থাত্ 0 প্রদান করে) এবং 'ভুয়া' কমান্ড (যা কিছুই করে না এবং অসফলভাবে সম্পূর্ণ করে, অর্থাত্ একটি শূন্য-মান দেয়)। এছাড়াও, কোনও ফাংশন যা সুস্পষ্ট রিটার্ন স্টেটমেন্ট ছাড়াই শেষ হয় শেষ নির্বাহী কমান্ডের প্রস্থান কোডটি ফেরত দেয়, সুতরাং উপরের উদাহরণে, ফাংশন বডিটি কেবলমাত্র কমিয়ে আনা যায় [ -d "$1" ]
অ্যামিচাইর

24
বেইংট: আপনি এটিকে ত্রুটি কোড হিসাবে ভাবেন সেটিকে বোধগম্য করে: ত্রুটি কোড 0 = সবকিছু ঠিকঠাক হয়ে গেছে = 0 ত্রুটি; ত্রুটি কোড 1 = এই কলটি করানোর মূল কথাটি ব্যর্থ হয়েছিল; অন্যথায়: ব্যর্থ! এটি ম্যানপেজে দেখুন
উড়ন্ত ভেড়া

7
আপনি যখন প্রোগ্রামিংয়ের বিষয়গুলিতে সাধারণত একটি উপায়ে সফল হতে পারেন তবে অসীম উপায়ে ব্যর্থ হতে পারেন তা বিবেচনা করার সময় এটি অর্থবোধ করে। ভাল হয়তো অসীম নয়, তবে প্রচুর পরিমাণে আমাদের পক্ষে প্রতিকূলতা রয়েছে। সাফল্য / ত্রুটি (গুলি) বুলিয়ান নয়। আমি মনে করি এটি "সত্যের জন্য 0 এবং মিথ্যা জন্য 1 ব্যবহার করুন।" "সাফল্যের জন্য 0 এবং ব্যর্থতার জন্য শূন্য নয়" পড়তে হবে।
দাভোস

6
দয়া করে 0 এবং 1 এর দেখুন ব্যবহার করবেন না stackoverflow.com/a/43840545/117471
ব্রুনো Bronosky

167

250+ upvote উত্তর থাকা সত্ত্বেও আমি যা বলি তা কেন আপনার যত্ন করা উচিত

এটা যে 0 = trueএবং না 1 = false। এটি হ'ল শূন্য অর্থ ব্যর্থতা (সাফল্য) এবং অ-শূন্য অর্থ ব্যর্থতা (টাইপ এন এর)

যদিও নির্বাচিত উত্তরটি প্রযুক্তিগতভাবে "সত্য" তবে অনুগ্রহ করে আপনার return 1কোডটিতে ** মিথ্যা বলে রাখবেন না । এর বেশ কয়েকটি দুর্ভাগ্যজনক পার্শ্ব প্রতিক্রিয়া হবে।

  1. অভিজ্ঞ বিকাশকারীরা আপনাকে অপেশাদার হিসাবে চিহ্নিত করবে (নীচের কারণে)
  2. অভিজ্ঞ বিকাশকারীরা এটি করবেন না (নীচের সমস্ত কারণে)।
  3. এটি ত্রুটিযুক্ত প্রবণ।
    • এমনকি অভিজ্ঞ বিকাশকারীগণ যথাক্রমে 0 এবং 1 টি ভুল এবং সত্য হিসাবে ভুল করতে পারেন (উপরের কারণে)।
  4. এটি বহিরাগত এবং হাস্যকর মন্তব্য প্রয়োজন (বা উত্সাহিত করবে)।
  5. প্রকৃত রিটার্ন স্ট্যাটাসের চেয়ে এটি আসলে কম সহায়ক।

কিছু বাশ শিখুন

ব্যাশ ম্যানুয়াল বলছেন (জোর খনি)

ফিরে [এন]

শেল ফাংশনটি কার্যকর করা বন্ধ করুন এবং এর কলকে মান n ফেরান। যদি এন সরবরাহ না করা হয় তবে ফিরতি মান হ'ল ফাংশনে সম্পাদিত শেষ কমান্ডের প্রস্থান স্থিতি

সুতরাং, সত্য ও মিথ্যা নির্দেশ করতে আমাদের 0 ও 1 ব্যবহার করতে হবে না। তারা এগুলি করে এমন ঘটনাটি কেবলমাত্র ডিবাগিং কোড, সাক্ষাত্কারের প্রশ্নাবলী এবং newbies মনকে উড়িয়ে দেওয়ার জন্য প্রয়োজনীয় তুচ্ছ জ্ঞান।

বাশ ম্যানুয়ালও বলে

অন্যথায় ফাংশনটির রিটার্নের স্থিতি হ'ল শেষ আদেশের নির্বাহ স্থিতি

বাশ ম্যানুয়ালও বলে

( $? ) সর্বাধিক সম্পাদিত সম্পাদিত অগ্রভাগের পাইপলাইনটির প্রস্থান স্থিতিতে প্রসারিত ।

ওহ, অপেক্ষা করুন। পাইপলাইন? আসুন আরও একবার ব্যাশ ম্যানুয়াল চালু করুন

একটি পাইপলাইন নিয়ন্ত্রণ অপারেটরগুলির একটি দ্বারা পৃথক করা এক বা একাধিক কমান্ডের অনুক্রম | বা '| &'।

হ্যাঁ. তারা বলেছিল যে 1 কমান্ড একটি পাইপলাইন। অতএব, এই উক্তিগুলির 3 টিই একই কথা বলছে।

  • $? আপনাকে শেষ ঘটনাটি জানায়।
  • এটা বুদবুদ।

আমার উত্তর

সুতরাং, কম্বুস যখন দেখালেন যে এই জাতীয় কোনও সাধারণ ক্রিয়াকলাপের সাথে, কোনও returnপ্রয়োজন নেই । আমি মনে করি এটি পড়বে এমন বেশিরভাগ মানুষের চাহিদার তুলনায় অবাস্তববাদীভাবে সহজ ছিল।

কেন return?

যদি কোনও ফাংশন তার শেষ কমান্ডের প্রস্থান স্থিতি ফিরে আসতে চলেছে তবে কেন এগুলি ব্যবহার করবে return? কারণ এটি কোনও ক্রিয়াকলাপ সম্পাদন বন্ধ করে দেয়।

একাধিক শর্তে কার্যকর করা বন্ধ করুন

01  function i_should(){
02      uname="$(uname -a)"
03
04      [[ "$uname" =~ Darwin ]] && return
05
06      if [[ "$uname" =~ Ubuntu ]]; then
07          release="$(lsb_release -a)"
08          [[ "$release" =~ LTS ]]
09          return
10      fi
11
12      false
13  }
14
15  function do_it(){
16      echo "Hello, old friend."
17  }
18
19  if i_should; then
20    do_it
21  fi

আমাদের এখানে যা আছে ...

লাইনটি 04একটি স্পষ্ট [-ish] সত্য প্রত্যাবর্তন কারণ &&এলএইচএস সত্য হলে কেবলমাত্র এর আরএইচএস কার্যকর করা হয়

লাইনটি 09সত্য বা মিথ্যা লাইনের স্থিতির সাথে মিলে যায়08

লাইনের 13কারণে লাইনে মিথ্যা ফিরিয়ে দেয়12

(হ্যাঁ, এটিকে অবহেলা করা যেতে পারে তবে পুরো উদাহরণটি বোঝা যায়))

আর একটি সাধারণ প্যাটার্ন

# Instead of doing this...
some_command
if [[ $? -eq 1 ]]; then
    echo "some_command failed"
fi

# Do this...
some_command
status=$?
if ! $(exit $status); then
    echo "some_command failed"
fi

statusভেরিয়েবল নির্ধারণ কীভাবে এর অর্থকে ক্ষুন্ন করে তা লক্ষ্য করুন $?। (অবশ্যই আপনি এর $?অর্থটি জানেন তবে কোনও দিন আপনার কাছে গুগলের কাছে কম জ্ঞানহীন কাউকে থাকতে হবে your যদি আপনার কোড উচ্চ ফ্রিকোয়েন্সি ট্রেড না করে তবে কিছু ভালবাসা প্রদর্শন করুন , ভেরিয়েবলটি সেট করুন)) তবে আসল গ্রহণযোগ্যতা হ'ল "যদি অস্তিত্ব নেই "বা বিপরীতে" যদি প্রস্থান স্থিতি "উচ্চস্বরে পড়া যায় এবং তাদের অর্থ ব্যাখ্যা করা যায়। তবে, এটি শেষটি কিছুটা উচ্চাভিলাষী হতে পারে কারণ শব্দটি দেখলে exitআপনি ভাবতে পারেন যে এটি স্ক্রিপ্টের বাইরে চলেছে, যখন বাস্তবে এটি $(...)সাবসেলের বাইরে চলেছে ।


** আপনি যদি পুরোপুরি return 1মিথ্যা ব্যবহারের জন্য জোর দিয়ে থাকেন তবে আমি আপনাকে return 255পরিবর্তে কমপক্ষে ব্যবহারের পরামর্শ দিচ্ছি । এটি আপনার ভবিষ্যতের স্ব, বা অন্য কোনও বিকাশকারীকে আপনার কোড বজায় রাখতে হবে এমন প্রশ্নের কারণ করবে "এটি কেন 255?" তারপরে তারা কমপক্ষে মনোযোগ দিচ্ছেন এবং কোনও ভুল এড়ানোর আরও ভাল সুযোগ পাবেন।


1
মিথ্যা ও সত্যের জন্য @ জিরোফেজ 1 এবং 0 টি হাস্যকর হবে। আপনার যদি বাইনারি ডেটাটাইপ থাকে তবে এর কোনও কারণ নেই। আপনি যে বিষয়টি ব্যাশে করছেন তা হ'ল একটি স্থিতির কোড যা সাফল্য (একক) এবং ব্যর্থতা (বহুবচন) প্রতিফলিত করে lects এটি " ifসাফল্য এটি করুন, elseএটি করুন।" সাফল্য কিসের? সত্য / মিথ্যা জন্য অনুসন্ধান করা যেতে পারে, একটি স্ট্রিং, পূর্ণসংখ্যা, ফাইল, ডিরেক্টরি, লেখার অনুমতি, গ্লোব, রিজেক্স, গ্রেপ বা অন্য কোনও কমান্ড যা ব্যর্থতার সাপেক্ষে অনুসন্ধান করা হতে পারে
ব্রুনো ব্রোনোস্কি

3
0/1 এর স্ট্যান্ডার্ড ব্যবহারকে কোনও প্রত্যাবর্তন মান হিসাবে এড়িয়ে চলা কেবল কারণ এটি অবজ্ঞাপূর্ণ এবং বিভ্রান্তির ঝুঁকির বোকা is পুরো শেল ভাষা অবাস্তব এবং বিভ্রান্তির ঝুঁকির মধ্যে রয়েছে। বাশ নিজেই নিজের trueএবং falseআদেশগুলিতে 0/1 = সত্য / মিথ্যা কনভেনশন ব্যবহার করে। এটি হ'ল trueমূলশব্দটি 0 টি স্ট্যাটাস কোডে আক্ষরিক মূল্যায়ন করে। এছাড়াও, যদি-তবে-প্রকৃতির বিবৃতিগুলি সাফল্যের কোড নয়, বুলিয়ানগুলিতে কাজ করে। যদি বুলিয়ান অপারেশন চলাকালীন একটি ত্রুটি ঘটে থাকে তবে এটি সত্য বা মিথ্যা ফিরে না আসা উচিত কেবল কার্যকরভাবে বিরতি দেওয়া উচিত। অন্যথায় আপনি মিথ্যা ধনাত্মক (শ্লেষ) পান।
বিউজর

1
"if! $ (প্রস্থান $ স্থিতি); তারপরে" - এটি আরও ভাল ব্যাখ্যার দাবিদার। এটি স্বজ্ঞাত নয়। বার্তাটি প্রিন্ট করার আগে প্রোগ্রামটি প্রস্থান করবে কি না সে সম্পর্কে আমাকে ভাবতে হবে। আপনার উত্তর বাকি ছিল ভাল, কিন্তু এটি এটি নষ্ট করে।
ক্রেগ হিক্স

1
@ ব্রুনো ব্রোনোস্কি আমি আপনার উত্তরটি পড়েছি এবং আমি মনে করি যে আমি সামগ্রীর পাইপলাইন (স্টিডিন-> স্টেডআউট) এবং ফেরতের মানগুলির মধ্যে ত্রুটি কোডের মধ্যে পার্থক্য বুঝতে পারি। তবুও, কেন ব্যবহার return 1এড়ানো উচিত তা আমি বুঝতে পারি না । ধরে নিলাম আমার কোনও validateফাংশন রয়েছে আমি return 1বৈধতাটি ব্যর্থ হলে এটি যুক্তিসঙ্গত বলে মনে করি । সর্বোপরি, কোনও স্ক্রিপ্ট সঠিকভাবে পরিচালনা না করা হলে (যেমন, যখন ব্যবহার করা হয় set -e) চালানো বন্ধ করার কারণ is
জেপিজেড

1
@ জিপজ এটি একটি দুর্দান্ত প্রশ্ন। আপনি সঠিক যে return 1বৈধ। আমার উদ্বেগটি এখানে সমস্ত মন্তব্য বলেছে যে "0 = সত্য 1 = মিথ্যা হল [নেতিবাচক শব্দটি প্রবেশ করান]" ” এই লোকেরা সম্ভবত কোনও দিন আপনার কোড পড়বে। সুতরাং তাদের জন্য return 255(বা 42 বা এমনকি 2) দেখার তাদের এটিকে আরও চিন্তা করতে এবং এটিকে "সত্য" হিসাবে ভুল না করে সহায়তা করা উচিত। set -eএখনও এটি ধরতে হবে।
ব্রুনো ব্রোনোস্কি

31
myfun(){
    [ -d "$1" ]
}
if myfun "path"; then
    echo yes
fi
# or
myfun "path" && echo yes

1
অবহেলা সম্পর্কে কি?
einpoklum

এটি কী, @ আইপোকলুম?
মার্ক রিড

@ মার্কারিড: আমার অর্থ, আপনার উদাহরণে "অন্য" কেস যুক্ত করুন।
einpoklum

মাইফুন "পথ" || প্রতিধ্বনি নং
হারবকি

13

কেবলমাত্র বিকল্প -d দিয়ে ডিরেক্টরি পরীক্ষা করার সময় সতর্কতা অবলম্বন করুন!
যদি ভেরিয়েবল $ 1 খালি থাকে তবে চেকটি এখনও সফল হবে। নিশ্চিত হওয়ার জন্য, ভেরিয়েবলটি খালি নেই তাও পরীক্ষা করে দেখুন।

#! /bin/bash

is_directory(){

    if [[ -d $1 ]] && [[ -n $1 ]] ; then
        return 0
    else
        return 1
    fi

}


#Test
if is_directory $1 ; then
    echo "Directory exist"
else
    echo "Directory does not exist!" 
fi

1
এই প্রশ্নের যে প্রশ্নটি করা হয়েছে তার উত্তর কীভাবে আমি অনিশ্চিত। যদিও এটা জেনে ভালো লাগল যে খালি 1 ডলার খালি থাকা অবস্থায় সত্যকে ফিরিয়ে দিতে পারে, তবে এটি কোনও ব্যাশ ফাংশন থেকে সত্য বা মিথ্যা কীভাবে ফিরে আসবে সে সম্পর্কে কোনও অন্তর্দৃষ্টি দেয় না। আমি একটি নতুন প্রশ্ন তৈরির পরামর্শ দেব "আপনি যখন খালি শেল ভেরিয়েবলের পরীক্ষা করেন তখন কী হয়?" এবং তারপরে উত্তর হিসাবে পোস্ট করা।
ডিআরহাল

3
দ্রষ্টব্য, আপনি যদি $1( "$1") এ যথাযথ উদ্ধৃতি যোগ করেন তবে আপনাকে খালি ভেরিয়েবলের জন্য পরীক্ষা করার দরকার নেই। [[ -d "$1" ]]ব্যর্থ হবে কারণ এই ""একটি ডিরেক্টরি নয়।
মোজেন্টস

3

আমি এমন একটি বিন্দুর মুখোমুখি হয়েছি (স্পষ্ট করে এখনও উল্লেখ করা হয়নি?) যা আমি আটকে যাচ্ছিলাম। এটি কীভাবে বুলিয়ান ফেরত দেবে তা নয়, কীভাবে এটি সঠিকভাবে মূল্যায়ন করা যায়!

আমি বলার চেষ্টা করছিলাম if [ myfunc ]; then ... , তবে এটি কেবল ভুল। আপনার অবশ্যই বন্ধনী ব্যবহার করা উচিত নয়! if myfunc; then ...এটা করার উপায়।

যেমন @ ব্রুনো এবং অন্যরা পুনরুদ্ধার করেছিলেন trueএবংfalse হয় কমান্ড , না মান! শেল স্ক্রিপ্টগুলিতে বুলিয়ান বুঝতে এটি খুব গুরুত্বপূর্ণ।

এই পোস্টে, আমি বুলিয়ান ভেরিয়েবলগুলি ব্যাখ্যা করে ডেমোড করেছি : https://stackoverflow.com/a/55174008/3220983 । আমি এটি পরীক্ষা করে দেখার জন্য দৃ strongly়ভাবে পরামর্শ দিচ্ছি, কারণ এটি এতটা নিবিড়ভাবে সম্পর্কিত।

এখানে, আমি ফাংশন থেকে বুলিয়ানগুলি ফিরে আসার এবং মূল্যায়নের কয়েকটি উদাহরণ সরবরাহ করব :

এই:

test(){ false; }                                               
if test; then echo "it is"; fi                                 

কোন প্রতিধ্বনি আউটপুট উত্পাদন করে না। (যেমন মিথ্যা false ফেরত দেয়)

test(){ true; }                                                
if test; then echo "it is"; fi                                 

উত্পাদন:

it is                                                        

(যেমন সত্য true প্রত্যাবর্তন )

এবং

test(){ x=1; }                                                
if test; then echo "it is"; fi                                 

উত্পাদন:

it is                                                                           

কারণ 0 (অর্থ সত্য) নিখুঁতভাবে ফিরে এসেছিল ।

এখন, এটাই আমাকে ঘৃণা করছিল ...

test(){ true; }                                                
if [ test ]; then echo "it is"; fi                             

উত্পাদন:

it is                                                                           

এবং

test(){ false; }                                                
if [ test ]; then echo "it is"; fi                             

ALSO উত্পাদন করে:

it is                                                                           

এখানে বন্ধনী ব্যবহার করে একটি মিথ্যা ইতিবাচক উত্পাদিত হয়েছিল ! (আমি "বহিরাগত" কমান্ডের ফলাফলটি 0 টি অনুমান করি)

আমার পোস্ট থেকে সরেজমিনটি হ'ল: আপনার মতো বুলিয়ান ফাংশন (বা ভেরিয়েবল) মূল্যায়নের জন্য বন্ধনী ব্যবহার করবেন না যেমন আপনি একটি সাধারণ সমতা পরীক্ষা করতে পারেন যেমন if [ x -eq 1 ]; then...!


2

আপনার অবিলম্বে এর আগে trueবা falseকমান্ডগুলি ব্যবহার করুন return, তারপরে returnকোনও পরামিতি ছাড়াই। returnস্বয়ংক্রিয়ভাবে আপনার শেষ কমান্ডের মান ব্যবহার করা হবে।

যুক্তি সরবরাহ করা returnঅসঙ্গত, নির্দিষ্ট টাইপ করুন এবং যদি আপনি 1 বা 0 ব্যবহার না করে থাকেন তবে ত্রুটির প্রবণতা এবং পূর্ববর্তী মন্তব্যগুলিতে যেমন বলা হয়েছে যে এখানে 1 বা 0 ব্যবহার করা এই ফাংশনটির কাছে যাওয়ার সঠিক উপায় নয়।

#!/bin/bash

function test_for_cat {
    if [ $1 = "cat" ];
    then
        true
        return
    else
        false
        return
    fi
}

for i in cat hat;
do
    echo "${i}:"
    if test_for_cat "${i}";
    then
        echo "- True"
    else
        echo "- False"
    fi
done

আউটপুট:

$ bash bash_return.sh

cat:
- True
hat:
- False

1

যদি এই পুনর্লিখন এটা কাজ করতে পারে function myfun(){ ... return 0; else return 1; fi;}এই function myfun(){ ... return; else false; fi;}। এটি যদি falseফাংশনটির শেষ নির্দেশনা হয় তবে আপনি পুরো ফাংশনের জন্য মিথ্যা ফলাফল পেয়েছেন তবে returnযাইহোক সত্য ফলাফলের সাথে ফাংশনটিকে বাধা দেয়। আমি বিশ্বাস করি এটি আমার ব্যাশ ইন্টারপ্রেটারের পক্ষে কমপক্ষে সত্য।


1

আমি ফাংশন আউটপুট সহজভাবে পরীক্ষা করতে সংক্ষিপ্ততম ফর্মটি খুঁজে পেয়েছি

do_something() {
    [[ -e $1 ]] # e.g. test file exists
}

do_something "myfile.txt" || { echo "File doesn't exist!"; exit 1; }

1

কোড পাঠযোগ্যতার কারণে আমি বিশ্বাস করি সত্য / মিথ্যা ফিরে আসা উচিত:

  • এক লাইনে থাকুন
  • এক আদেশ হতে
  • মনে রাখা সহজ
  • returnঅন্য কীওয়ার্ড ( trueবা false) দ্বারা অনুসরণ করা মূলশব্দ উল্লেখ করুন

আমার সমাধানটি return $(true)বা return $(false)প্রদর্শিত হিসাবে:

is_directory()
{
    if [ -d "${1}" ]; then
        return $(true)
    else
        return $(false)
    fi
}

0

@ ব্রুনো ব্রোনোস্কি এবং @ মিটারেটিমে অনুসরণ করে, আমি আপনাকে প্রস্তাব দিচ্ছি যে আপনি আপনার বুলিয়ান রিটার্নটি "পিছনের দিকে" লিখেছেন। এটি আমার অর্থ:

foo()
{
    if [ "$1" == "bar" ]; then
        true; return
    else
        false; return
    fi;
}

এটি প্রতিটি রিটার্নের বিবৃতিতে কুৎসিত দুটি রেখার প্রয়োজনীয়তা দূর করে।

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