কেন 0 সত্য তবে শেলটিতে মিথ্যা 1?


122
false; echo $?

উপরের উইল আউটপুটটি 1যা আমি জানি অন্য সমস্ত প্রোগ্রামিং ভাষার সাথে স্ববিরোধী।

এর কোন কারণ?


3
এটি ইউনিক্স ওয়ে এর সাথেও সামঞ্জস্যপূর্ণ ... সাফল্যে কোনও কিছুই ফিরিয়ে দেবে না।
আব্দুল্লাহ জীবনী

21
কারণ একটি প্রস্থান স্থিতি একটি বুলিয়ান নয়। যে হিসাবে সহজ।
জেনস

2
falseঅন্যান্য প্রোগ্রামিং ভাষার মতো এটিও বুলিয়ান নয় বলে মনে রাখবেন । এটা ঠিক এ অবস্থিত একটি প্রোগ্রাম এর /bin/false( /usr/bin/falseম্যাক) যে সবসময় একটি ত্রুটি প্রস্থান কোড 1. জন্য অনুরূপ আসতে বোঝানো হচ্ছে true। সুতরাং এখানে কাস্টিংয়ের মতো জিনিস নেই। এটি কেবল প্রস্থান কোডগুলি সম্পর্কে।
মিখাইল ভাসিন

একটি শেল একটি অপারেটিং সিস্টেমের (ব্যবহারকারী) ইন্টারফেস। ইউনিক্স ইত্যাদির প্রোগ্রামগুলি উত্তর হিসাবে দেওয়া (একাধিক ব্যর্থতার কারণে যোগাযোগের ক্ষমতা) এর সাথে 0 হিসাবে ঠিক হিসাবে উপস্থিত হওয়ার সম্মেলন অনুসরণ করে । শেলটি সহজভাবে এই কনভেনশনটি রাখে, যা if myprog; then echo OK; fiসহজেই এবং স্বজ্ঞানের মতো নির্মাণ করে । অন্যথায় আপনাকে কোনও প্রোগ্রামের সাফল্যের জন্য প্রতিটি পরীক্ষা উল্টাতে হবে!
পিটার - মনিকা

উত্তর:


93

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


6
আমি এই উত্তরটি বুঝতে পারি, তবে এখনও কেন টু রূপান্তরটি উল্টানো হয় তা পাই না। সেখানে কি "রিটার্ন বুলিয়ান কনভেনশন" রয়েছে যা বলছে: আপনি যদি সত্য প্রত্যাবর্তন করেন তবে এর অর্থ হ'ল কোনও ত্রুটি নেই, যদি আপনি মিথ্যা প্রত্যাবর্তন করেন তবে এর অর্থ একটি ত্রুটি ঘটেছে (যেমন "" পূর্ণসংখ্যা = ত্রুটি কোড কনভেনশন "যা বেশি পরিচিত)?
Guillaume86

1
অনুমান করিয়ে নেওয়া যে কোনও রূপান্তরকরণের জন্য একটি বুলিয়ান রয়েছে তা বোঝায় যে আপনি উত্তরটি সত্যই বুঝতে পারেন নি। জিরো অর্থ সাফল্য এবং 1, 2, ..., 255 এর সবকটিই ত্রুটি কোড যা বিভিন্ন ব্যর্থতার পরিস্থিতিতে কার্যকরভাবে যোগাযোগ করতে পারে। একটি নির্দিষ্ট উদাহরণ হ'ল xargsযা একটি গ্রুপের কমান্ডগুলির ব্যর্থতা কীভাবে ব্যর্থ হয়েছিল তা নির্দেশ করতে 127 এর আশেপাশে বিভিন্ন ত্রুটি কোডগুলি ব্যবহার করে । রূপান্তরটি যা করা যায় তা হ'ল যেখানে সাফল্যের 0 টি মানচিত্র (যা আমি অনুমান করি আপনি সত্য / 1 হিসাবে প্রকাশ করতে চান; তবে বুঝতে পারেন যে এটি কেবল অন্য এক নির্বিচার সম্মেলন) এবং ব্যর্থতার অন্য সমস্ত মান।
ট্রিপলি

79

বাশ একটি প্রোগ্রামিং (স্ক্রিপ্টিং) ভাষা, তবে এটি শেল এবং একটি ব্যবহারকারী-ইন্টারফেসও। যদি 0ত্রুটি ছিল, তবে প্রোগ্রামটি কেবল এক ধরণের ত্রুটি উপস্থাপন করতে পারে।

তবে বাশে, কোনও ননজারো মান একটি ত্রুটি, এবং আমরা ত্রুটি উপস্থাপন করতে 1-255 থেকে যে কোনও সংখ্যা ব্যবহার করতে পারি। এর অর্থ আমরা বিভিন্ন ধরণের ত্রুটি থাকতে পারি। 1এটি একটি সাধারণ ত্রুটি, 126যার অর্থ কোনও ফাইল কার্যকর করা 127যায় না , এর অর্থ 'কমান্ড পাওয়া যায়নি' ইত্যাদি etc. এখানে বাশ প্রস্থান কোডগুলির একটি তালিকা রয়েছে যার মধ্যে বেশ কয়েকটি সাধারণ বহির্গমন কোড দেখাচ্ছে Special

অনেক ধরণের সাফল্য (প্রস্থান স্থিতি হ'ল 0)। যাইহোক, একটি সাফল্য আপনাকে পরবর্তী ধাপে এগিয়ে যাওয়ার অনুমতি দেবে — আপনি কোনও স্ক্রিনে মুদ্রণ ফলাফল পছন্দ করতে পারেন, বা কোনও কমান্ড কার্যকর করতে পারেন ইত্যাদি can


8
বিভিন্ন রিটার্ন কোডগুলির কার্যকারিতা দেখানো এই ব্যবহারিক উত্তরটি অন্য কয়েকটি উত্তরের প্রচার ও নেতার চেয়ে ভাল।
জাভাদবা

1
এবং কেবল এটির মজাদার জন্য, আমি উল্লেখ করব যে /usr/include/sysexits.hনোটগুলি প্রস্থান মূল্যগুলি সম্ভবত আরও উচ্চাকাঙ্ক্ষী, যদিও তারা যে কনভেনশনটি উপস্থাপন করে তা 1980 এর দশকের পুরানো। এই সম্মেলন বাশের সুযোগের বাইরে রয়েছে।
ঘোটি

2
একটি দুর্দান্ত, সহজ এবং বাস্তববাদী ব্যাখ্যা। এটি শীর্ষে থাকা প্রয়োজন।
রে লিওনার্ড আমোরাতো

3
"যদি 0ত্রুটি ছিল, তবে প্রোগ্রামটি কেবল এক ধরণের ত্রুটি উপস্থাপন করতে পারে" । এই বিবৃতিটি কী এবং এই উত্তরটি শীর্ষে থাকার কারণ।
রেয়রিং

1
@ লুইসলভায়ার এটি অপরিজ্ঞাত আচরণ। অনুশীলনে, সংখ্যাটি ছিন্ন হয়ে যায়; তবে রানটাইম যদি একটি সতর্কতা তৈরি করে এবং / অথবা কেবল ক্র্যাশ হয় তবে এটি অবশ্যই "আরও ভুল" হবে না। ওএস এই তথ্যের জন্য ঠিক একটি বাইট সংরক্ষণ করে এবং একাধিক বাইট রাখার চেষ্টা করে অবশ্যই একটি ত্রুটি রয়েছে। তবে ওএস ডিজাইনার সম্ভবত প্রথম দিনেই ক্র্যাশগুলিতে ছুটে এসেছিল এবং সঙ্কুচিত হয়ে গেছে এবং সিদ্ধান্ত নিয়েছে যে তারা সবচেয়ে ভাল যেটা করতে পারে তা হ'ল কেবল মূল্য কেটে ফেলা।
ট্রিপল

30

এখানে দুটি সম্পর্কিত সমস্যা আছে।

প্রথমত, ওপির প্রশ্ন, কেন 0 সত্য তবে শেলের মধ্যে 1 টি মিথ্যা? এবং দ্বিতীয়টি, কেন অ্যাপ্লিকেশনগুলি সাফল্যের জন্য 0 এবং ব্যর্থতার জন্য শূন্য নয়?

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

কেন সাফল্যের জন্য অ্যাপ্লিকেশনগুলি 0 এবং ব্যর্থতার জন্য শূন্য নয়?

কোনও অপারেশনকে অনুরোধ করে এমন কোডে অপারেশনের প্রস্থান স্থিতি সম্পর্কে দুটি জিনিস জানতে হবে। অপারেশনটি কি সফলভাবে প্রস্থান করলেন? [* 1] এবং যদি অপারেশন সফলভাবে প্রস্থান না হয় তবে কেন অপারেশন ব্যর্থভাবে বেরিয়ে গেল? কোনও মান সাফল্য বোঝাতে ব্যবহৃত হতে পারে। তবে 0 অন্য যে কোনও সংখ্যার তুলনায় বেশি সুবিধাজনক কারণ এটি প্ল্যাটফর্মগুলির মধ্যে পোর্টেবল। ১ Aug আগস্ট ২০১১ এ এই প্রশ্নের উত্তরটি সংক্ষিপ্ত করে :

জিরো এনকোডিং-স্বতন্ত্র।

যদি আমরা একটি 32 (বিট) পূর্ণসংখ্যার শব্দের মধ্যে একটি (1) সঞ্চয় করতে চাই, তবে প্রথম প্রশ্নটি হবে "বিগ-এন্ডিয়ান শব্দ বা ছোট-এন্ডিয়ান শব্দ?", তারপরে "বাইটস কতক্ষণ একটি ছোট-এন্ডিয়ান শব্দটি রচনা করে? ", যখন শূন্য সবসময় একই দেখায়।

এছাড়াও এটি আশা করা দরকার যে কিছু লোক কিছু সময়ে চর বা সংক্ষিপ্ত বা এমনকি ভাসতে ভ্রমন করার জন্য ভুল করে ফেলে। (অন্তর্) ((চর) ENOLCK) ENOLCK নয় যখন চর কমপক্ষে 8-বিট দীর্ঘ না হয় (7-বিট ASCII চর মেশিনগুলি ইউএনআইএক্স দ্বারা সমর্থিত হয়), (ইনট) ((চর) 0) 0 এর থেকে পৃথক হয় চরের আর্কিটেকচারাল বিবরণ।

একবার এটি নির্ধারিত হয় যে 0 সাফল্যের জন্য প্রত্যাবর্তন মান হবে, তবে ব্যর্থতার জন্য কোনও শূন্য-মান ব্যবহার করা বোধগম্য। অপারেশন কেন ব্যর্থ হয়েছিল তা প্রশ্নের উত্তর দিতে এটি অনেক প্রস্থান কোডকে অনুমতি দেয় ।

কেন 0 সত্য তবে শেলটিতে মিথ্যা 1?

শেলগুলির মৌলিক ব্যবহারগুলির মধ্যে একটি হ'ল প্রক্রিয়াগুলি স্ক্রিপ্ট করে স্বয়ংক্রিয় করে তোলা। সাধারণত এর অর্থ অপারেশন শুরু করা এবং তারপরে অপারেশনটির প্রস্থান স্থিতির ভিত্তিতে শর্তাধীন অন্য কিছু করা। ফিলিপ এ এই পোস্টে তার উত্তরে সুন্দরভাবে ব্যাখ্যা করেছিলেন

ব্যাশ এবং সাধারণভাবে ইউনিক্স শেলগুলিতে, রিটার্ন মানগুলি বুলিয়ান নয়। এগুলি পূর্ণসংখ্যার প্রস্থান কোডগুলি।

এই অপারেশনগুলির প্রস্থান স্থিতিটি বুলিয়ান মান হিসাবে ব্যাখ্যা করার পরে এটি প্রয়োজনীয়। এটি সফল ( 0) থেকে বেরিয়ে আসার স্থিতিকে সত্য এবং কোনও অ-শূন্য / ব্যর্থতার প্রস্থান স্থিতিকে মিথ্যা হিসাবে মানচিত্র তৈরি করে তোলে । এটি করার ফলে শৃঙ্খলিত শেল কমান্ডগুলির শর্তসাপেক্ষ কার্যকর করা সম্ভব হয়।

এখানে একটি উদাহরণ mkdir deleteme && cd $_ && pwd। শেলটি 0 টির মতো সত্য ব্যাখ্যা করে কারণ এই কমান্ডটি প্রত্যাশা মতো সুবিধামত কাজ করে। শেলটি যদি 0 টি মিথ্যা হিসাবে ব্যাখ্যা করে থাকে তবে প্রতিটি ক্রিয়াকলাপের জন্য আপনাকে ব্যাখ্যা করা প্রস্থান স্থিতিটি উল্টাতে হবে।

সংক্ষেপে, অ্যাপ্লিকেশনগুলি সফল প্রস্থান স্থিতির জন্য 0 প্রত্যাবর্তন করে কনভেনশনটি দেওয়া হলেও শেলটি 0 টি মিথ্যা হিসাবে ব্যাখ্যা করা অযৌক্তিক হবে।


[* 1]: হ্যাঁ, অনেক সময় অপারেশনগুলিকে কেবল একটি সাধারণ সাফল্যের বার্তা ছাড়াও বেশি ফিরে আসা দরকার তবে এটি এই থ্রেডের পরিধি ছাড়াই।

অ্যাডভান্সড ব্যাশ-স্ক্রিপ্টিং গাইডে পরিশিষ্ট Eও দেখুন


2
হ্যালো, কেবল এই বিষয়টির সাথে জোর দিয়েই, শেলটি যদি শূন্যকে মিথ্যা এবং শূন্য-শূন্যকে সত্য হিসাবে ব্যাখ্যা করে থাকে তবে করার কৌশলটি mkdir deleteme && cd _$ && pwdসত্যই ব্যর্থ হবে না; তবে আমাদের এটিকে প্রতিস্থাপন করতে হবে mkdir deleteme || cd _$ || pwd, যা আমার মতে খুব কম স্পষ্ট, কারণ আমরা আসলে যা করতে চাই তা হ'ল mkdir deleteme" এবং " cd _$" এবং " pwd... ("এবং" এর সাথে সাধারণ ভাষা থেকে এর অর্থ রয়েছে)।
রুমি পেয়ার 4'15

1
আমি মনে করি আমি আমার উত্তরে এটি আবরণ করেছি। যদিও পরিষ্কার হতে হবে, আপনি যখন যুক্তিটি উল্টান কেবল &&অপারেটরগুলি দিয়ে ||অপারেটরগুলি প্রতিস্থাপন করা যথেষ্ট নয় । আপনাকে দে মরগানের আইন পুরোপুরি প্রয়োগ করতে হবে। দেখুন: en.wikipedia.org/wiki/De_Morgan%27s_laws
axiopisty

1
আরেকটি বিবেচনা: আমি কমপক্ষে তিনটি কারণ দেখতে পাচ্ছি কেন, সাধারণ ভিত্তিতে, এটি trueশূন্যের falseসাথে মিলে এবং ননজারোর সাথে মিলে যায় তা বলা স্বাভাবিক হবে । প্রথমে, যদি আমি আপনাকে কিছু বলি, "আপনাকে সত্য বলেছি" তা আমি যে মিথ্যা বলেছি তার উপর নির্ভর করে: হয় শূন্য এবং আমি সত্য (বিশ্বব্যাপী) সত্য বলেছি, অথবা এটি ননজারো এবং আমি মিথ্যা বলেছি। এটি মূলত যুক্তটির andসাধারণ এবং "যোগ" সংযোজন (প্রাকৃতিক সংখ্যায় সীমাবদ্ধ থাকাকালীন স্পষ্টতই) অনুরূপ হওয়ার অনুরূপ।
রুমি পেয়ার

1
(পূর্ববর্তী মন্তব্য থেকে অবিরত)। দ্বিতীয় কারণ হ'ল একটি সত্য কিন্তু অনেক অ-সত্য; সুতরাং, এর জন্য একটি একক মান trueএবং অন্যান্য মানগুলির সাথে যুক্ত করা আরও সুবিধাজনক false। (এটি মূলত প্রোগ্রামগুলির রিটার্ন মানগুলির বিবেচনার মত একই)।
রুমি পেয়ার 21

(পূর্ববর্তী মন্তব্য থেকে অবিরত)। তৃতীয় কারণটি হ'ল "সত্য যে সত্য এটি" সত্যই "সত্য যে এ", "মিথ্যা সেই মিথ্যা যে এ" একই "মিথ্যা যে এ", ইত্যাদি।; যাতে trueগুণক 1 এবং falseগুণক -1 হিসাবে আচরণ করে । যা, -১ এর শক্তি হিসাবে বোঝায় যে trueসংযোজনকে "এমনকি" এবং false"বিজোড়" হিসাবে আচরণ করে । আবার, এটিই trueশূন্য হওয়ার দাবিদার ...
রামি পেয়ার 21

17

আমি যে মৌলিক বিষয়টি বুঝতে গুরুত্বপূর্ণ তা হ'ল এটি। ব্যাশ এবং সাধারণভাবে ইউনিক্স শেলগুলিতে, রিটার্ন মানগুলি বুলিয়ান নয়। এগুলি পূর্ণসংখ্যার প্রস্থান কোডগুলি। এই হিসাবে, আপনার অবশ্যই কনভেনশন অনুযায়ী তাদের মূল্যায়ন করতে হবে 0 বলার অর্থ সাফল্য এবং অন্যান্য মান বলতে কিছু ত্রুটি বোঝায়।

সঙ্গে test, [ ]বা [[ ]]অপারেটর, ব্যাশ অবস্থার 0 একটি প্রস্থান কোড (/ bin / সত্য রিজাল্ট) ক্ষেত্রে সত্য হিসাবে নির্ণয় করা। অন্যথায় তারা মিথ্যা হিসাবে মূল্যায়ন।

স্ট্রিংগুলি প্রস্থান কোডের চেয়ে আলাদাভাবে মূল্যায়ন করা হয়:

if [ 0 ] ; then echo not null ; fi
if [ $(echo 0) ] ; then echo not null ; fi

if [ -z "" ] ; then echo null ; fi

(( ))গাণিতিক অপারেটর সত্য এবং মিথ্যা হিসাবে ব্যাখ্যা করে 1 এবং 0। তবে সেই অপারেটর সম্পূর্ণরূপে প্রতিস্থাপন হিসাবে ব্যবহার করা যাবে না test, [ ]বা [[ ]]। পাটিগণিত অপারেটর কার্যকর হলে এখানে একটি উদাহরণ দেখাচ্ছে:

for (( counter = 0 ; counter < 10 ; counter ++ )) ; do
  if (( counter % 2 )) ; then echo "odd number $counter" ; fi
done

সত্য / মিথ্যা সম্পর্কে ব্রেস বনাম বন্ধনীগুলির ব্যাখ্যার জন্য ধন্যবাদ
জাভাদবা

15

এটি কেবলমাত্র একটি কনভেনশন যে একটি 0 প্রস্থান কোড মানে সাফল্য। প্রায় প্রতিটি আধুনিক সিস্টেমে EXIT_SUCCESS 0 হবে।

সম্পাদনা করুন:

"কেন পরীক্ষা 0 এবং পরীক্ষা 1 উভয়ই 0 (সাফল্য) দেয়?"

এটি সম্পূর্ণ ভিন্ন প্রশ্ন। উত্তরটি হ'ল পরীক্ষার জন্য একটি একক যুক্তি পাস করা সর্বদা সাফল্যের ফলাফল হয় যদি না সেই যুক্তি নাল স্ট্রিং ("") হয়। দেখুন ওপেন গ্রুপ ডকুমেন্টেশন


তাহলে উভয়ই কেন test 0এবং test 10 (সাফল্য) ফেরত দেয়?
53-

5
@httpinter ব্যাখ্যা, testসংখ্যার মান পরীক্ষা করে না। এটি পরীক্ষা করে যে স্ট্রিংটি নাল স্ট্রিং কিনা। man testআরও তথ্যের জন্য.
কার্ল নরুম

12

সাধারণত প্রোগ্রামগুলি সাফল্যের জন্য শূন্য, ব্যর্থতার জন্য শূন্য নয়; false1 প্রদান করে কারণ এটি একটি সুবিধাজনক অ-শূন্য মান, তবে সাধারণত কোনও শূন্য-মান মানে কোনও ধরণের ব্যর্থতা এবং অনেকগুলি প্রোগ্রাম বিভিন্ন ব্যর্থতা মোডগুলি নির্দেশ করতে বিভিন্ন শূন্য-মানকে ফিরিয়ে দেয়


2
যা কিছু চুষে থাকে তার কোনও ব্যাখ্যা (বা স্পষ্ট কারণ) ছাড়াই এবং যারা এটি করে তারা খোঁড়া, কারণ তারা সম্প্রদায়কে মোটেই সহায়তা করছে না।
আব্দুল্লাহ জীবনী

1
না এটা দেখার ভান করা ... কিন্তু এটা হয় তাদের 2 পয়েন্ট ... এবং @MichaelMrozek .. 19.6k সঙ্গে, এটা খুব খারাপ আঘাত করতে পারে না, তোমার।
অ্যালেক্স গ্রে

1
@alexgray এটি দুই বছর আগে ছিল; এই সময় আমার প্রায় 5 কে ছিল এবং আমি উত্তর সম্পর্কে ভুল কি ছিল সে সম্পর্কে আরও কৌতূহলী ছিলাম
মাইকেল মরোজেক

5

এএআইএআইএকি সি কনভেনশন থেকে এটি এসেছে যে সফল হলে আপনার 0 প্রত্যাবর্তন করা উচিত। দেখা:

man close

বেশিরভাগ সি (পসিক্স) এপিআই এমনভাবে তৈরি। http://en.wikipedia.org/wiki/C_POSIX_library


4

এটি ইউনিক্সের প্রথম দিনগুলির একটি সম্মেলন।

কনভেনশন দ্বারা, সমস্ত সিস্টেম কলগুলি সফল হলে 0-এ ফিরে আসে, অন্যথায় শূন্য নয়, কারণ ব্যর্থতার বিভিন্ন কারণ চিহ্নিত করতে বিভিন্ন সংখ্যা ব্যবহার করা যেতে পারে।

শেলগুলি এই সম্মেলনটি অনুসরণ করে, 0 এর অর্থ শেষ কমান্ড সফল হয়েছে, অন্যথায় শূন্য নয়। একইভাবে, আউটপুট ত্রুটি বার্তাগুলির জন্য শূন্য -হীন রিটার্ন মানটি কার্যকর হয়: যেমন 1: "মস্তিষ্কের মৃত", 2: "হৃদয়হীন" এবং আরও কিছু।



3

আপনার সাফল্য / ব্যর্থতার সাথে সত্য / মিথ্যা সমীকরণের চেষ্টা করা।

তারা সম্পূর্ণরূপে দুটি, যদিও প্রথমে সূক্ষ্মভাবে, ভিন্ন ভিন্ন ডিকোটোমিজ!

শেল স্ক্রিপ্টিংয়ে সত্য / মিথ্যা বলে কিছু নেই। শেল 'এক্সপ্রেশন' সত্য / মিথ্যা হিসাবে ব্যাখ্যা করা হয় না। বরং শেল 'এক্সপ্রেশন' এমন প্রক্রিয়া যা সফল হয় বা ব্যর্থ হয়।

স্পষ্টতই, একটি প্রক্রিয়া অনেক কারণে ব্যর্থ হতে পারে। সুতরাং আমাদের সম্ভাব্য ব্যর্থতা মানচিত্র করতে একটি বৃহত্তর সেট কোড প্রয়োজন। ধনাত্মক পূর্ণসংখ্যার কৌশলটি করে। অন্যদিকে, যদি প্রক্রিয়াটি সফল হয়, তার মানে এটি ঠিক যা করেছিল তার করা উচিত ছিল। যেহেতু এটি করার একমাত্র উপায় আছে তাই আমাদের কেবল একটি কোড দরকার। 0 কৌশল করে।

সি তে আমরা একটি প্রোগ্রাম তৈরি করছি। শেল স্ক্রিপ্টে, আমরা কিছু করার জন্য গুচ্ছ প্রোগ্রাম চালাচ্ছি।

পার্থক্য!


এটা বিভ্রান্তিকর. টাইপ করুন 'ম্যান ['। এটি দেখায় পরীক্ষার ইউটিলিটিটি এক্সপ্রেশনকে মূল্যায়ন করে এবং যদি এটি সত্যের কাছে মূল্যায়ন করে তবে একটি শূন্য (সত্য) প্রস্থান স্থিতি ফিরে আসে; অন্যথায় এটি 1 (মিথ্যা) ফেরত দেয়। যদি কোনও অভিব্যক্তি না থাকে তবে পরীক্ষাটি 1 (মিথ্যা )ও দেয়।
অশ্বারোহণে

1

এটি মনে রাখার একটি ভাল উপায় হতে পারে:

  • কোডগুলি উত্তর দিন "উত্তর কী?" সত্য (বা অন্য ফলাফল) বা মিথ্যা
  • কোডগুলি প্রস্থান করুন "কী সমস্যা?" প্রস্থান কোড বা কোনও সমস্যা (0)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.