প্রযুক্তির সাথে আপনার জীবন সহজ করার সেরা উপায়ের মধ্যে একটি, চায়ে কাজে বা বাড়িতে, হলো অটোমেশন হারনেস করা। স্ক্রিপ্ট এবং টাইমড জব দিয়ে টাস্ক অটোমেট করা আপনার সময়, মাথাব্যাথা, এবং প্রচেষ্টা বাঁচাতে নিশ্চিত। যাইহোক, এটি সাথে সাথে স্পষ্ট নয় কোথা থেকে শুরু করব। এখানে আমরা আপনাকে দেখাব Bash for লুপ কমান্ড কীভাবে ব্যবহার করবেন, IT অটোমেশনের ফাউন্ডেশনাল টুলগুলোর একটি, যাতে আপনি শুরু করতে পারেন।
আপনার টেস্ট এনভায়রনমেন্ট সেট আপ করুন
প্রথম জিনিস যা আপনাকে দরকার হবে সেটি হলো একটি ওয়ার্কিং Bash ইনস্ট্যান্স। এটি লিনাক্স, Unix, BSD, এবং macOS-এ টার্মিনালে ডিফল্ট শেল (যদি আপনি zsh রান না করছেন)। আপনি নিচের কমান্ড টার্মিনালে টাইপ করে চেক করতে পারেন আপনি কোন শেল রান করছেন:
echo $SHELL
এটি আপনি যে শেল ব্যবহার করছেন সেটি প্রিন্ট আউট করবে। আমার আউটপুট বলে আমি /bin/bash ব্যবহার করছি, যা ঠিক আমার যা খুঁজছি।
আপনাকে একটি টেক্সট এডিটরও দরকার হবে—আপনি যেকোনো এডিটর বেছে নিন সেটি চলে। আমি টার্মিনালে Nano ব্যবহার করছি, কিন্তু আপনি সহজে Vim বা Emacs টার্মিনালে ব্যবহার করতে পারেন বা Gedit, Kate, বা Sublime GUI-তে।
আপনার টেক্সট এডিটরে একটি স্ক্রিপ্ট ফাইল তৈরি করুন, হয় touch কমান্ড দিয়ে বা শুধু আপনার টেক্সট এডিটরের নাম এবং আপনি যে ফাইল তৈরি করতে চান তার নাম টাইপ করে। আমার কেসে, আমি শুধু nano for-loop-test.sh টাইপ করলে হয়ে যাবে।
Bash For Loop: বেসিক্স
Bash-এ For লুপ শেলকে বলে একটি নির্দিষ্ট রেঞ্জ অফ অবজেক্টের ওপর ইটারেট করতে এবং সেই অবজেক্টগুলোর ওপর একটি নির্দিষ্ট কমান্ড এক্সিকিউট করতে। এটার মানে কী? আমি মনে করি আপনাকে দেখানো সহজ হবে। এটি একটি খুব বেসিক For লুপ।
প্রথম লাইন, for i in 1 2 3 4 5 একটি ভেরিয়েবল "i" এবং ১ থেকে ৫ পর্যন্ত একটি রেঞ্জ স্পেসিফাই করে। এটি যেকোনো অন্যান্য, আরও কমপ্লেক্স নম্বর সিকোয়েন্স, অথবা একটি ফাইল লিস্ট যা সেখানে ইনপুট করা হয়েছে বা একটি ডিরেক্টরি হতে পারে।
পরের বিটটি বেসিক ফরম্যাটিং, ট্যাবড পোर्शनে এক্সিকিউট করা কমান্ডসহ। do এবং done For লুপ সিনট্যাক্সের অংশ এবং সেখানে থাকতে হবে। আমি যদি এই স্ক্রিপ্টটি রান করি, তবে আমি নিচের আউটপুট পাব:
Test round 1 Test round 2 Test round 3 Test round 4 Test round 5
আপনি দেখতে পাচ্ছেন কিভাবে ভেরিয়েবলটি কাজ করে। এটি আপনাকে সেই ইনপুট রেঞ্জের প্রতিটি আলাদা অবজেক্ট আইডেন্টিফাই করতে সাহায্য করে। কিছুটা আরও কমপ্লেক্স নম্বর রেঞ্জ স্পেসিফাই করতে, আপনি কার্লি ব্রেস ব্যবহার করে সেগুলো সেট আপ করতে পারেন। আগের সেই রেঞ্জটি স্পেসিফাই করতে, আপনি for $i in 1 2 3 4 5 কে for $i in {1..5} এ পরিবর্তন করতে পারেন। আউটপুট একই হবে। আপনি এটিকে নির্দিষ্ট নম্বর দিয়ে কাউন্ট করাও করতে পারেন। এটি ০ থেকে ২৭ পর্যন্ত ৩ দিয়ে সব নম্বর কাউন্ট আউট করছে।
স্ক্রিপ্টগুলোর মধ্যে আরও সাধারণ কিছু হলো একটি নির্দিষ্ট কমান্ড এক্সিকিউট করা একসাথে অনেক ফাইলের ওপর। যদি আমি একটি ডিরেক্টরির অনেক ফাইলের ওপর cat ব্যবহার করতে চাই, তবে আমি স্ক্রিপ্টটি নিচের মতো পরিবর্তন করে করতে পারি।
এটি "test-directory"-তে সব ফাইলের আউটপুট টার্মিনালে প্রিন্ট করবে।
আউটপুট আমার কেসে নিচের মতো দেখাবে।
আপনি বুঝতে পারছেন For লুপ কতটুকু পাওয়ারফুল হতে পারে। এটি কেবল সতহে খোদাই, আপনি do এবং done এর মধ্যে একাধিক কমান্ড স্ট্রিং করতে পারেন, এবং কন্ডিশনাল স্টেটমেন্টও ব্যবহার করে কমান্ডগুলোর আরও কমপ্লেক্স করতে পারেন।
আমাদের অন্যান্য Bash আর্টিকেলগুলো চেক করতে ভুলবেন না, যেমন Bash Tips and Tricks to Work Smarter in the Terminal এবং কিছু Bash স্পেশাল ক্যারেক্টার যা আপনাকে জানা উচিত।