বাশ কীপ্রেস এর জন্য অপেক্ষা করুন

Bash Wait Keypress



ব্যাশ স্ক্রিপ্টে ব্যবহারকারীর ইনপুট নিতে `read` কমান্ড ব্যবহার করা হয়। আমরা রিড কমান্ডের সাথে বিভিন্ন ধরনের অপশন ব্যবহার করে ব্যাশ স্ক্রিপ্টে ইনপুট নিতে পারি। কখনও কখনও আমাদের স্ক্রিপ্টটি এমনভাবে লিখতে হয় যে স্ক্রিপ্টটি চলবে যতক্ষণ না একটি নির্দিষ্ট কী চাপানো হয় অথবা নির্দিষ্ট স্ক্রিপ্টটি নির্দিষ্ট কী -এর উপর ভিত্তি করে চালানো হয় অথবা প্রোগ্রামটি নির্দিষ্ট সময়ের জন্য অপেক্ষা করে যতক্ষণ না কোনো কী চাপানো হয়। কিভাবে আপনি কোন বিশেষ কী বা কোন কাজের জন্য কোন কী এর জন্য অপেক্ষা করার জন্য ব্যাশ স্ক্রিপ্ট লিখতে পারেন তা বিভিন্ন উদাহরণ ব্যবহার করে এই টিউটোরিয়ালে দেখানো হয়েছে।

উদাহরণ#1:

নিম্নলিখিত স্ক্রিপ্ট দিয়ে একটি ব্যাশ ফাইল তৈরি করুন। যখন আপনি স্ক্রিপ্টটি চালাবেন, তখন পর্যন্ত এটি চলতে থাকবে যতক্ষণ না ব্যবহারকারী কোন কী চাপেন। স্ক্রিপ্টটি প্রতি seconds সেকেন্ডে ব্যবহারকারীর ইনপুটের জন্য অপেক্ষা করবে এবং ব্যবহারকারী যদি কোন কী না চাপেন তাহলে এটি বার্তাটি মুদ্রণ করবে, কীপ্রেস এর জন্য অপেক্ষা করছি







#!/বিন/ব্যাশ
বের করে দিল 'চালু রাখবার জন্য যেকোনো বোতাম চাপুন'
যখন [ সত্য ];কর
পড়ুন -টি 3 -এন
যদি [ $?=0 ];তারপর
প্রস্থান;
অন্য
বের করে দিল 'চাবির জন্য অপেক্ষা করছি'
থাকা
সম্পন্ন

স্ক্রিপ্ট চালান।



$বাশkey1.sh

আউটপুট:







উদাহরণ#2:

নিম্নলিখিত স্ক্রিপ্ট দিয়ে একটি ব্যাশ ফাইল তৈরি করুন। এই উদাহরণে একটি অসীম যখন লুপ ব্যবহার করা হয় যা ব্যবহারকারী যখন 'q' চাপবে তখন বন্ধ হয়ে যাবে। যদি ব্যবহারকারী 'q' ছাড়া কোন কী চাপেন তাহলে কাউন্টার ভেরিয়েবলের মান 1 দ্বারা বৃদ্ধি পাবে এবং মানটি মুদ্রণ করবে।

#!/বিন/ব্যাশ
বের করে দিল 'প্রস্থান করতে' q 'টিপুন'
গণনা=0
যখন:;কর
পড়ুন -এন প্রতি<&
যদি [[ $ k= q]];তারপর
printf 'nকর্মসূচি থেকে সরে যাওয়াn'
বিরতি
অন্য
((গণনা=$ count+))
printf 'nজন্য ইটারেট$ countবারn'
বের করে দিল 'প্রস্থান করতে' q 'টিপুন'
থাকা
সম্পন্ন

স্ক্রিপ্ট চালান।



$বাশkey2.sh

আউটপুট:

উদাহরণ#3:

নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা ব্যবহারকারীর দ্বারা চাপা কীটির উপর ভিত্তি করে বিভিন্ন ধরণের কাজ করবে। যদি ব্যবহারকারী '1' টিপেন তবে এটি দুটি কমান্ড লাইন যুক্তি যুক্ত করবে এবং মুদ্রণ করবে। যদি ব্যবহারকারী '2' টিপেন তবে এটি দুটি কমান্ড লাইন আর্গুমেন্ট বিয়োগ করে মুদ্রণ করবে। স্ক্রিপ্টটি চলবে যতক্ষণ না ব্যবহারকারী '3' টিপেন।

#!/বিন/ব্যাশ
v1=$ 1
v2=$ 2
যখন:
কর
বের করে দিল '1। যোগ'
বের করে দিল '2। বিয়োগ '
বের করে দিল '3। ছেড়ে দাও '
বের করে দিল -এন 'টাইপ 1 বা 2 বা 3:'
পড়ুন -এন -টি পনেরপ্রতি
printf 'n'
কেস $ ক ভিতরে
* ) বের করে দিল '$ v1+$ v2=$ (($ v1+$ v2)) ';;

2* ) বের করে দিল '$ v1-$ v2=$ (($ v1- $ v2)) ';;

3* ) প্রস্থান 0;;


* ) বের করে দিল 'আবার চেষ্টা করুন.';;
esac
সম্পন্ন

দুটি সংখ্যাসূচক যুক্তি মান দিয়ে স্ক্রিপ্ট চালান।

$বাশkey3.sh35 পনের

আউটপুট:

উদাহরণ#4:

নিম্নলিখিত স্ক্রিপ্ট দিয়ে একটি ব্যাশ ফাইল তৈরি করুন। স্ক্রিপ্টটি বন্ধ হয়ে যাবে যখন ব্যবহারকারী ESC কী চাপবে। এই স্ক্রিপ্টটি ব্যবহারকারীর দ্বারা চাপা কীগুলি মুদ্রণ করবে যতক্ষণ না ESC কী চাপানো হয়।

#!/বিন/ব্যাশ
ব্যবহারকারীর ইনপুট=''
বের করে দিল 'প্রস্থান করতে ESC কী টিপুন'
# একটি অক্ষর পড়ুন
যখন পড়ুন -আর -এন 1চাবি
কর
# যদি ইনপুট == ESC কী
যদি [[ $ কী== $'এবং' ]];
তারপর
বিরতি;
থাকা
# ব্যবহারকারীর দ্বারা চাপানো ভেরিয়েবলে কী যুক্ত করুন।
userinput+=$ কী
সম্পন্ন
printf 'nআপনি টাইপ করেছেন:$ userinputn'

স্ক্রিপ্ট চালান।

$বাশkey4.sh

আউটপুট:

উদাহরণ#5:

নিম্নলিখিত কোড সহ একটি ব্যাশ ফাইল তৈরি করুন যা স্ক্রিপ্টটি শেষ করার জন্য ENTER কী এর জন্য অপেক্ষা করবে। স্ক্রিপ্ট একটি সার্ভারের নাম ইনপুট হিসেবে নেবে এবং প্রতি 2 সেকেন্ডে সার্ভার পিং করার চেষ্টা করবে। যদি পিং কমান্ড সার্ভার থেকে সাড়া পায় তাহলে এটি আউটপুট প্রদর্শন করে স্ক্রিপ্টটি বন্ধ করে দেবে অন্যথায় এটি বার্তাটি মুদ্রণ করে ব্যবহারকারীর প্রতিক্রিয়া বা ENTER কী এর জন্য অপেক্ষা করবে, সাথে সংযোগ করার চেষ্টা করছে ...।

#!/বিন/ব্যাশ
বের করে দিল 'আপনি যে সার্ভারের ঠিকানাটি পিং করতে চান তা লিখুন'
পড়ুনসার্ভার
যখন ! পিং -সি -এন -ভিতরে 2 $ সার্ভার
কর
বের করে দিল সাথে সংযোগ করার চেষ্টা করছে$ সার্ভার'
বের করে দিল 'শেষ করতে [ENTER] টিপুন'
পড়ুন -এস -এন -টি চাবি
যদি [[ $ কী== $' x0a' ]];# যদি ইনপুট == ENTER কী
তারপর
প্রস্থান 0
থাকা
সম্পন্ন
printf '%sn' '$ সার্ভারচলছে'

স্ক্রিপ্ট চালান।

$বাশkey5.sh

আউটপুট:

উপসংহার:

এই টিউটোরিয়ালটি দেখায় যে আপনি কীভাবে বিভিন্ন উপায়ে ব্যাশ স্ক্রিপ্ট লিখতে পারেন যা ব্যবহারকারীর ইনপুটের জন্য কোন নির্দিষ্ট কাজ করতে বা স্ক্রিপ্টটি বন্ধ করার জন্য অপেক্ষা করবে। আশা করি, উপরের উদাহরণগুলি অনুশীলন করার পরে, আপনি স্ক্রিপ্টটি এমনভাবে লিখতে সক্ষম হবেন যা কোনও কীপ্রেস এর জন্য অপেক্ষা করতে পারে এবং ব্যবহারকারীর চাপা কীটির উপর ভিত্তি করে নির্দিষ্ট কাজটি করতে পারে।