আমি নিজেই এই অঞ্চলে বিরোধী ফলাফল পেয়েছি। আমার অভিজ্ঞতাগত পরীক্ষাগুলির ফলাফল এখানে। প্রথমত, বাশ বা * নিক্স কমান্ড সম্পর্কে কিছু ' তত্ত্ব ':
- সাফল্য == 0 ... যেমন। কোনও ত্রুটি স্থিতির কোড)
- ব্যর্থ! = 0 ...... কিছু স্ট্যাটাস কোড
উদাহরণ:
if ls -lt /nonexistantdir
then
echo "found"
else
echo "FAIL"
fi
#
echo
ls -lt /nonexistantdir; echo "status = $?"
echo "status = $?"
আউটপুট:
ls: cannot access '/nonexistantdir': No such file or directory
FAIL...
ls: cannot access '/nonexistantdir': No such file or directory
status = 2
দেখানো হিসাবে, ls
কমান্ড আয় অবস্থা কোড = 2. আপনি একটি বৈধ ডিরেক্টরির চেষ্টা করেন, তখন অবস্থা শূন্য (হয় 0 )। প্রায় অন্যান্য সমস্ত ভাষার মতো নয়।
নিয়ম # 1 - করুন ...
আমাদের অবশ্যই মনে রাখতে হবে যে আমরা বাশ স্টেটমেন্টে ত্রুটি কোডগুলি পরীক্ষা করছি if
। আমি ধ্রুবকগুলি সেট আপ করি বা আপনি শেল true
বা false
কমান্ড ব্যবহার করতে পারেন ।
TRUE=0
FALSE=1
# valid number function
#
valNum()
{
flag=$TRUE
if [[ $1 != [1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ]]; then
echo "Invalid Number"
flag=$FALSE
fi
return $flag
}
# later on ...
#
if validNum Abc
then
echo "Lucky number"
else
echo "Not lucky."
fi
এবং আউটপুট:
Invalid Number
Not lucky.
তবে, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি @ গিলসকে কোনও ' আপ-ভোট ' দিন কারণ তার উত্তরটি সঠিক। আমি কেবল ই-পেপারে সরলতর দিকটি পেতে চেয়েছিলাম।
আর একটি জিনিস, test
আদেশ। এটির মতো দেখাচ্ছে:
[[ some-expression ]];
অধিকাংশ সময়. এবং উদাহরণস্বরূপ:
$ test 1
$ echo "result = $?"
result = 0
$ test 0
$ echo "result = $?"
result = 0
শূন্য (0) সত্য হচ্ছে । কেন? ওয়েল ম্যান পেজটি বলে যে একটি একক যুক্তি ' সত্য ' যখন এটি নল নয় UL
রেফারেন্স: