লিনাক্স সিস্টেমে ফাইল বা ডিরেক্টরি এক্সিস্ট করে কিনা চেক করতে পারেন test কমান্ড ব্যবহার করে ব্যাশে। নিচের উদাহরণগুলো দেখুন।
test কমান্ড সিনট্যাক্স
test EXPRESSION
test কমান্ড EXPRESSION ইভ্যালুয়েট করে। এক্সপ্রেশন নিচের অপারেটরগুলো ব্যবহার করে তৈরি করা যায় এবং একাধিক অপারেটর কম্বাইন করেও তৈরি করা যায়।
| -d file | True যদি file একটি Directory হয়। [[ -d demofile ]] |
| -e file | True যদি file Exists করে। [[ -e demofile ]] |
| -f file | True যদি file একটি রেগুলার File হয়। [[ -f demofile ]] |
| -h file | True যদি file একটি সিম্বলিক Link হয়। [[ -h demofile ]] |
| -L file | True যদি file একটি সিম্বলিক Link হয়। [[ -L demofile ]] |
| -s file | True যদি file-র Size শূন্যের চেয়ে বড় হয়। [[ -s demofile ]] |
test কমান্ড অন্যান্য তুলনার জন্যও ব্যবহার করা যায়, যেমন ফাইল ডেট, টাইপ, পারমিশন তুলনা, এবং স্ট্রিং ও নাম্বার তুলনা - test কমান্ডের ইউজার ম্যানুয়াল দেখতে লিনাক্স শেলে চালান:
man test
আপনি নিশ্চয় [[]] (স্কোয়ার ব্র্যাকেট) গুলো লক্ষ্য করেছেন - স্কোয়ার ব্র্যাকেট test কমান্ডের বদলে ব্যবহার করা যায় - তবে বুঝতে সুবিধার জন্য এখানে এড়িয়ে যাচ্ছি।
test কমান্ড উদাহরণ
লিনাক্স শেলে && অপারেটর দিয়ে দ্রুত চেক করুন ফাইল বা ডিরেক্টরি এক্সিস্ট করে কিনা, যা শুধু তখন রান করবে যখন test কমান্ড TRUE স্ট্যাটাস দিয়ে এক্সিট করবে:
test -e /path/to/myfile && echo "File or directory exists."
if স্টেটমেন্টের সাথে test কমান্ড ব্যবহার
if..else স্টেটমেন্ট এবং test ব্যবহার করে কন্ডিশনাল লজিক বিশিষ্ট স্ক্রিপ্ট বানান:
if test -f path/to/myfile; then echo "File exists and is a regular file." elif test -d path/to/myfile; then echo "File exists and is a directory." else echo "File does not exist." fi
উপসংহার
ইউজারের ফাইল সিস্টেমে লেখার সময়, আগে চেক না করেই ফাইল মডিফাই বা ক্রিয়েট করা বুদ্ধিমানের কাজ নয় - আপনি মূল্যবান ডেটা ধ্বংস করতে পারেন এবং সমস্যায় পড়তে পারেন।
ভালো স্ক্রিপ্টগুলো আগে ফাইল প্রেজেন্স চেক করে এবং ইউজারকে পুঁছবে কোন অ্যাকশন নেওয়া উচিত - উপরের মেথডকে বিল্ড আপ করে ঠিক সেটাই করা যায়।
লিনাক্স শেল নেভিগেশনের আরও টিউটোরিয়ালের জন্য এখানে ক্লিক করুন!