কমান্ড লাইন আর্গুমেন্টগুলি পড়া

Ruby:
কমান্ড লাইন আর্গুমেন্টগুলি পড়া

কিভাবে:

কমান্ড-লাইন আর্গুমেন্টগুলি ধরতে, রুবি একটি সাধারণ অ্যারে প্রদান করে: ARGV। এটি দেওয়া আর্গুমেন্টসগুলি ক্রমে ধারণ করে।

# hello.rb
name = ARGV[0] || "পৃথিবী"
puts "হ্যালো, #{name}!"

# চালানো হয়েছে: ruby hello.rb Alice
# আউটপুট: হ্যালো, Alice!

একাধিক আর্গুমেন্ট পরিচালনা করতে:

# greet.rb
name, time_of_day = ARGV
puts "শুভ #{time_of_day || 'দিন'}, #{name || 'সেখানে'}!"

# চালানো হয়েছে: ruby greet.rb Bob Morning
# আউটপুট: শুভ সকাল, Bob!

একটি লুপের সাহায্যে অপশন তৈরি করুন:

# options.rb
options = {}
ARGV.each do |arg|
  key, value = arg.split('=')
  options[key.to_sym] = value
end
p options

# চালানো হয়েছে: ruby options.rb name=Tom age=30
# আউটপুট: {:name=>"Tom", :age=>"30"}

গভীরে গিয়ে:

কমান্ড-লাইন আর্গুমেন্টস পড়া প্র্যাকটিস হলো কমান্ড-লাইন ইন্টারফেসগুলির আবির্ভাবের পুরোনো একটি পদ্ধতি। এটি GUI ছাড়া ইউজার ইনপুট ব্যবহার করার কথা বলে—অটোমেশনের জন্য অপরিহার্য বা সার্ভারে স্ক্রিপ্টগুলি চালানোর সময়।

রুবির ARGV অনন্য নয়; অনেক ভাষায় এর মতো কিছু আছে। তবে, রুবির বাস্তবায়নে সিম্পলিসিটি এবং স্পষ্ট সিনট্যাক্সের উপর জোর দেওয়া হয়েছে—কোনো ঝামেলা নেই, শুধু একটি অ্যারে।

গভীরে, ARGV একটি Array-এর একটি উদাহরণ মাত্র, যা কমান্ড কলে স্ক্রিপ্ট নামের পরে প্রদত্ত আর্গুমেন্টগুলি দিয়ে পূর্ব-পূরিত হয়। আপনার কোড চালানোর আগেই রুবি এটি সেটআপ করে, এতে এটি ব্যবহারের জন্য তাত্ক্ষণিকভাবে প্রস্তুত থাকে।

বিকল্প? অবশ্যই। জটিল প্রয়োজনের জন্য, যেমন ফ্ল্যাগ (--verbose বা -v এর মতো) পার্স করা, রুবির স্ট্যান্ডার্ড লাইব্রেরিতে OptionParser ক্লাস আছে। এটি ARGV -এর চেয়ে বেশি নিয়ন্ত্রণ করতে পারে, যেমন ডিফল্ট মান, অটোমেটিক টাইপ কনভার্সন, এবং হেল্প মেসেজ জেনারেট করা।

কখনো কখনো, শুধু এটি জানা দরকার যে একটি আর্গুমেন্ট প্রদান করা হয়েছে নাকি না, এর মান বাদ দিয়ে। সে ক্ষেত্রে, ARGV.include? কাজে লাগে।

আরও দেখুন