কম্পিউটার

ব্যাশ/শেল স্ক্রিপ্টগুলিতে ব্যবহারকারীর ইনপুটের জন্য কীভাবে প্রম্পট করবেন

এই সংক্ষিপ্ত টিউটোরিয়ালটি আপনাকে ব্যাশ/শেল স্ক্রিপ্ট থেকে টাইপ করা ইনপুটের জন্য ব্যবহারকারীকে প্রম্পট করতে শেখাবে। এটা শেখা সহজ, করা সহজ, তাই পড়ুন!

পড়ুন কমান্ড

শেল স্ক্রিপ্টগুলিতে ব্যবহারকারীর ইনপুট পড়ার জন্য, যথাযথভাবে নাম পড়ুন ব্যবহার করুন আদেশ এটিতে নিম্নলিখিত সিনট্যাক্স রয়েছে:

read OPTIONS VARIABLES

মনে রাখবেন:

  • পড়ুন কমান্ড স্ট্যান্ডার্ড ইনপুট থেকে একটি লাইন পড়বে এবং সেই ইনপুটটিকে
      ক্ষেত্রগুলিতে বিভক্ত করুন
    • সাধারণত, স্ট্যান্ডার্ড ইনপুট আপনার কীবোর্ড থেকে ইনপুট সহ টার্মিনাল, তবে আপনি পড়ুন-এ ইনপুট পাইপ বা পুনঃনির্দেশিত করতে পারেন আদেশ
    • ব্যবহারকারীর দৃষ্টিকোণ থেকে, তাদের অনুরোধ করা হবে এবং ENTER কী টিপে অনুসরণ করে কিছু লিখতে হবে
  • বিকল্পগুলি৷ নীচের সারণী থেকে বিকল্প পতাকার একটি তালিকা হওয়া উচিত যা পড়ুন-এর আচরণ পরিবর্তন করবে আদেশ
  • ভেরিয়েবল মানগুলির একটি তালিকা যা স্পেস
      দ্বারা পৃথক করা স্ক্রিপ্টে প্রেরণ করা হবে
    • যদি -p বিকল্পটি ব্যবহার করা হয়, আপনি ব্যবহারকারীকে তাদের কী লিখতে হবে তা বলার জন্য অনুরোধগুলির একটি মিলিত তালিকার সাথে এটি যুক্ত করতে পারেন
    • একাধিক হিসেবে ভেরিয়েবল স্পেস দ্বারা আলাদা করে সরবরাহ করা যেতে পারে, আপনি যে মান ইনপুট করতে চান, যার মধ্যে স্পেস বা অন্যান্য বিশেষ অক্ষর রয়েছে, উদ্ধৃত করা উচিত
পড়ুন সাধারণভাবে ব্যবহৃত বিকল্পগুলি
-একটি অ্যারে শূণ্য থেকে শুরু করে অ্যারে ভেরিয়েবল ARRAY-এর অনুক্রমিক সূচকগুলিতে পঠিত শব্দগুলি বরাদ্দ করুন
-p প্রম্পট পড়ার চেষ্টা করার আগে একটি নতুন লাইন ছাড়াই স্ট্রিং প্রম্পট আউটপুট করুন
-r ব্যাকস্ল্যাশগুলিকে কোনো অক্ষর এড়িয়ে যাওয়ার অনুমতি দেবেন না
-s টার্মিনাল থেকে আসা ইনপুট ইকো করবেন না
-t টাইমআউট টাইম আউট এবং রিটার্ন ব্যর্থতা যদি ইনপুটের একটি সম্পূর্ণ লাইন TIMEOUT সেকেন্ডের মধ্যে পড়া না হয়

যথারীতি, আপনি পড়ুন-এর জন্য ব্যবহারকারীর ম্যানুয়াল পেতে পারেন কমান্ড, উপলব্ধ বিকল্পগুলির একটি সম্পূর্ণ তালিকা সহ, রান করে:

man read

পঠন কমান্ড ব্যবহার করে ইনপুট করার জন্য অনুরোধ করা হচ্ছে

এখানে পড়ুন ব্যবহার করার কিছু উদাহরণ রয়েছে৷ ব্যাশ/শেল স্ক্রিপ্টে ব্যবহারকারীর ইনপুট গ্রহণ করার নির্দেশ।

কিন্তু প্রথমে...

লিনাক্স শেল স্ক্রিপ্টে '#!' কী?

শুধু ইনপুট পাচ্ছি

এটি কমান্ডের সবচেয়ে সহজ ব্যবহার - ইনপুট থেকে শুধুমাত্র একটি একক মান পড়া:

#!/bin/bash

read word
echo You just typed $word

উপরে, ইনপুটকে $word নামক একটি ভেরিয়েবলে পড়া হয় , এবং তারপর echo ব্যবহার করে প্রদর্শিত হয় আদেশ আবার, সেখানেকোন প্রম্পটিং হবে না - স্ক্রীনটি থামবে এবং ব্যবহারকারীর কিছু টাইপ করার জন্য অপেক্ষা করবে, তারপরে ENTER কী - তারপর প্রদত্ত ইনপুট দিয়ে স্ক্রিপ্টটি পুনরায় শুরু হবে৷

একাধিক ইনপুট মান পেতে, স্পেস দিয়ে আলাদা করে কমান্ডে আরও ভেরিয়েবল যোগ করুন:

#!/bin/bash

read word1 word2
echo You just typed $word1 followed by $word2

একটি বার্তা দিয়ে ইনপুট করার জন্য অনুরোধ করা হচ্ছে

ইনপুটের জন্য অপেক্ষা করার জন্য স্ক্রীন বিরাম দেওয়া সত্যিই ব্যবহারকারী-বান্ধব নয়। সাধারণত, আপনি ব্যবহারকারীকে বলতে চাইবেন যে তারা কী লিখছে - উদাহরণস্বরূপ, একটি ব্যবহারকারীর নাম বা একটি পাসওয়ার্ড৷ এই পরবর্তী উদাহরণটি ঠিক তাই করে:

#!/bin/bash

read -p 'Username: ' username
read -sp 'Password: ' password
echo Your username is $username, we will not display your password

উপরে, -p বিকল্পটি একটি প্রম্পট প্রদর্শন করতে ব্যবহৃত হয় - একটি বার্তা প্রদর্শিত হয় যা ব্যবহারকারীকে বলে যে প্রতিটি ভেরিয়েবলের মানের জন্য তাদের কী ইনপুট করা উচিত।

এছাড়াও আপনি -s দেখতে পারেন পাসওয়ার্ড ভেরিয়েবলের জন্য ব্যবহৃত বিকল্প, যা টাইপ করা ইনপুটকে নীরব করে দেয় যাতে এটি প্রদর্শিত না হয়।

একটি বার্তা সহ একাধিক ইনপুটের জন্য অনুরোধ করা হচ্ছে

আপনি প্রম্পট করতে পারেন এবং তারপর একাধিক মান পড়তে পারেন:

#!/bin/bash

read -p 'Please type your first and last name: ' first last
echo Your name is $first $last

হ্যাঁ/না-এর জন্য অনুরোধ করা হচ্ছে

একটি while loop ব্যবহার করে কীভাবে ব্যবহারকারীকে একটি সহজ হ্যাঁ/না প্রশ্ন জিজ্ঞাসা করতে হয় তা এখানে রয়েছে এবং একটি কেস স্টেটমেন্ট . y দিয়ে শুরু হওয়া যেকোনো স্ট্রিং অথবা Y হ্যাঁ হিসেবে ব্যাখ্যা করা হবে *, একটি n দিয়ে শুরু হওয়া যেকোনো স্ট্রিং অথবা একটি N না হিসেবে ব্যাখ্যা করা হবে :

#!/bin/bash
while true; do
    read -p "Do you wish to perform this action?" yesno
    case $yesno in
        [Yy]* ) 
            echo "You answered yes"
        ;;
        [Nn]* ) 
            echo "You answered no, exiting"
            exit
        ;;
        * ) echo "Answer either yes or no!";;
    esac
done

না না হওয়া পর্যন্ত স্ক্রিপ্টটি কার্যকর হবে গৃহীত হয় - এবং ব্যবহারকারীকে যেকোনো কাজ সম্পাদনের জন্য অনুরোধ করার জন্য সহজেই পরিবর্তন করা যেতে পারে।


  1. লিনাক্সে কীভাবে সাধারণ শেল স্ক্রিপ্ট তৈরি করবেন

  2. ভিম-এ শেল স্ক্রিপ্টগুলির জন্য কীভাবে কাস্টম হেডার টেমপ্লেট তৈরি করবেন

  3. উইন্ডোজ 10 এ ব্যাশ (লিনাক্স শেল) কীভাবে ইনস্টল ও ব্যবহার করবেন [টিউটোরিয়াল]

  4. উইন্ডোজ 10 এ কীভাবে লিনাক্স ব্যাশ শেল ইনস্টল করবেন