Bash স্ক্রিপ্ট থেকে একটি ফাইল বা ডিরেক্টরি বিদ্যমান কিনা তা পরীক্ষা করা হচ্ছে
লিনাক্সে নিয়মিতভাবে চালানো কমান্ড স্বয়ংক্রিয় করার জন্য ব্যাশ ব্যবহার করা হয়। যে কমান্ডগুলি ফাইল/ডিরেক্টরিগুলিতে ক্রিয়াকলাপের জন্য বোঝানো হয় সেগুলি প্রায়শই ব্যবহৃত হয় এবং সাধারণত, আমরা এই জাতীয় কমান্ড কার্যকর করার আগে, আমাদের নির্দিষ্ট ফাইল বা ডিরেক্টরি বিদ্যমান কিনা তা পরীক্ষা করতে হবে। আসুন দেখি কিভাবে এই চেকটি সম্পাদন করতে হয়।
সিনট্যাক্স এবং ব্যবহার
নথি পত্র
একটি ফাইল বিদ্যমান কিনা পরীক্ষা করতে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:
[-চ]
ভাবভঙ্গি [-চ]
0 ফেরত দেয়, অর্থাৎ, সফল হলে বিদ্যমান আছে, এবং যদি এটি বিদ্যমান না থাকে তবে এটি একটি শূন্য স্থিতি প্রদান করে। সাধারণত, এটি একটি শর্ত হিসাবে ব্যবহৃত হয়
যদি
বিবৃতি
যদি [ -f ] তারপর fi
ফেরত মান অস্বীকার করতে, সহজভাবে আগে -চ
একটি নেগেশন অপারেটরের সাথে (!
).
যদি [! -f] তারপর fi
এক্ষেত্রে শর্ত পূরণ করলে ফাইলটি হবে এটির অস্তিত্ব নেই, যেহেতু প্রত্যাবর্তিত নন-জিরো স্ট্যাটাস (মিথ্যা) নেগেটিভ করা হবে এবং 0 (সত্য) হিসাবে বিবেচিত হবে।
মনে রাখবেন যে ফাইলটি যদি চেক করা বর্তমান ডিরেক্টরিতে বিদ্যমান না থাকে এবং অন্য কোনো ডিরেক্টরিতে বিদ্যমান থাকে, তবে শুধুমাত্র ফাইলের নামের পরিবর্তে ফাইলটির সম্পূর্ণ পাথ উল্লেখ করা উচিত।
ডিরেক্টরি
ফাইল চেক করার জন্য ব্যবহৃত অনুরূপ সিনট্যাক্স ডিরেক্টরি চেক করার জন্য ব্যবহার করা হয়।
[-d]
ফাইলগুলির জন্য বিবৃতির অনুরূপ, এই বিবৃতিটি 0 প্রদান করে, অর্থাৎ, সফলতা, যদি ডিরেক্টরি থাকে বিদ্যমান, এবং একটি অ শূন্য, অর্থাৎ ব্যর্থতার স্থিতি ফেরত দেওয়া হয় যদি এটি বিদ্যমান না থাকে। এটি একটি সাধারণত ব্যবহৃত হয়
যদি
বিবৃতি শর্ত।
যদি [ -d ] তারপর fi
প্রত্যাবর্তিত স্থিতি অস্বীকার করতে, এর আগে -d
একটি নেগেশন অপারেটরের সাথে (!
).
যদি [! -d] তারপর fi
যদি ডিরেক্টরিটি বিদ্যমান না থাকে তবে শর্তটি এই ক্ষেত্রে (স্থিতি 0) সন্তুষ্ট করবে এবং ডিরেক্টরিটি বিদ্যমান থাকলে ব্যর্থ হবে (স্থিতি শূন্য)।
ফাইলগুলির জন্য আগে উল্লিখিত হিসাবে, যদি চেক করা ডিরেক্টরিটি অন্য অবস্থানে বিদ্যমান থাকে এবং বর্তমান ডিরেক্টরিতে না থাকে তবে শুধুমাত্র ডিরেক্টরির নামের পরিবর্তে পুরো ডিরেক্টরি পাথ প্রবেশ করাতে হবে।
💡 বন্ধনী সিনট্যাক্স ( [...]
) এখানে আসলে একটি লিনাক্স কমান্ড ব্যবহৃত হয় পরীক্ষা
. অপশন -চ
এবং -d
এই কমান্ডের বৈশিষ্ট্য। আরও তথ্যের জন্য, পরীক্ষার ম্যানুয়াল পৃষ্ঠা দেখুন ( মানুষ পরীক্ষা
).
একটি ব্যাশ স্ক্রিপ্ট থেকে চেক করুন
উপরের উদাহরণে, আমরা সরাসরি টার্মিনালে বাক্য গঠন ব্যবহার করেছি। শেল যখনই এটি একটি লুপের সম্মুখীন হয়, বা একটি শর্তসাপেক্ষ বিবৃতি (যদি
আমাদের ক্ষেত্রে), এটি প্রম্পটটি চালিয়ে যায় এবং ব্যবহারকারীকে অবিরত ব্লকে প্রবেশ করতে দেয়।
একই সিনট্যাক্সগুলি ব্যাশ স্ক্রিপ্টের ভিতরে থেকে ব্যবহার করা যেতে পারে।
দ্য #!/bin/bash
শুরুতে ফাইলটি কার্যকর করার সময় ব্যবহার করা ইন্টারপ্রেটারকে নির্দিষ্ট করে। যদিও বাশ আজকাল সর্বাধিক ব্যবহৃত শেল, কিছু ব্যবহারকারী শেল পছন্দ করেন zsh
, যা এই ফাইলের শুরুতে bash-এর জায়গায় নির্দিষ্ট করা উচিত।
এক্সিকিউট পারমিশন দিতে এই ফাইলের জন্য, চালান:
chmod +x test.sh
অবশেষে, ফাইলটি চালানোর জন্য, চালান:
./test.sh