باش کلید کا انتظار کریں۔

Bash Wait Keypress



bash اسکرپٹ میں صارف کا ان پٹ لینے کے لیے 'read' کمانڈ استعمال کی جاتی ہے۔ ہم ریڈ کمانڈ کے ساتھ مختلف قسم کے اختیارات استعمال کرکے بش اسکرپٹ میں ان پٹ لے سکتے ہیں۔ بعض اوقات ہمیں سکرپٹ کو اس طرح لکھنے کی ضرورت ہوتی ہے کہ اسکرپٹ اس وقت تک چلے گی جب تک کہ کوئی مخصوص کلید دبائی نہیں جائے گی یا مخصوص اسکرپٹ مخصوص کلید کی بنیاد پر عملدرآمد کرے گا یا پروگرام کسی مخصوص بٹن کو دبانے تک مخصوص وقت کا انتظار کرے گا۔ آپ کسی خاص کلید یا کچھ کاموں کی کسی بھی کلید کا انتظار کرنے کے لیے باش سکرپٹ کیسے لکھ سکتے ہیں اس ٹیوٹوریل میں مختلف مثالوں کا استعمال کرتے ہوئے دکھایا گیا ہے۔

مثال نمبر 1:

مندرجہ ذیل اسکرپٹ کے ساتھ ایک باش فائل بنائیں۔ جب آپ اسکرپٹ کو چلائیں گے ، یہ تب تک جاری رہے گا جب تک کہ صارف کوئی کلید نہ دبائے۔ اسکرپٹ ہر 3 سیکنڈ میں صارف کے ان پٹ کا انتظار کرے گا اور اگر صارف کوئی کلید نہیں دبائے گا تو وہ پیغام پرنٹ کرے گا ، چابی کا انتظار .







#!/bin/bash
باہر پھینک دیا 'جاری رکھنے کے لیے کوئی بھی کلید دبائیں'
جبکہ [ سچ ]؛کیا
پڑھیں -ٹی
اگر [ = ]؛پھر
باہر نکلیں؛
اور
باہر پھینک دیا 'چابی کا انتظار'
ہو
ہو گیا

اسکرپٹ چلائیں۔



$لشکرkey1.sh

آؤٹ پٹ:







مثال نمبر 2:

مندرجہ ذیل اسکرپٹ کے ساتھ ایک باش فائل بنائیں۔ اس مثال میں ایک لامحدود جبکہ لوپ استعمال کیا گیا ہے جو کہ صارف جب 'q' دبائے گا تو ختم ہو جائے گا۔ اگر صارف 'q' کے بغیر کوئی کلید دبائے تو کاؤنٹر متغیر کی قیمت میں 1 اضافہ ہو جائے گا اور قیمت پرنٹ ہو جائے گی۔

#!/bin/bash
باہر پھینک دیا باہر نکلنے کے لیے 'q' دبائیں
شمار=
جبکہکیا
پڑھیں کو<&
اگر [[ $ ک= q]]؛پھر
پرنٹ ایف 'nپروگرام سے کنارہ کشی۔n'
توڑ
اور
((شمار=$ count+))
پرنٹ ایف 'nکے لیے تکرار کریں۔$ countاوقاتn'
باہر پھینک دیا باہر نکلنے کے لیے 'q' دبائیں
ہو
ہو گیا

اسکرپٹ چلائیں۔



$لشکرkey2.sh

آؤٹ پٹ:

مثال نمبر 3:

مندرجہ ذیل اسکرپٹ کے ساتھ ایک باش فائل بنائیں جو صارف کی طرف سے دبائی گئی کلید کی بنیاد پر مختلف قسم کے کام کرے گی۔ اگر صارف '1' دباتا ہے تو یہ دو کمانڈ لائن دلائل اور پرنٹ شامل کرے گا۔ اگر صارف '2' دباتا ہے تو یہ دو کمانڈ لائن دلائل کو گھٹا دے گا اور پرنٹ کرے گا۔ اسکرپٹ مسلسل چلتا رہے گا جب تک کہ صارف ’3‘ دبائے۔

#!/bin/bash
v1=$ 1
v2=$ 2۔
جبکہ:
کیا
باہر پھینک دیا '1۔ اضافہ '
باہر پھینک دیا '2۔ گھٹاؤ '
باہر پھینک دیا '3۔ چھوڑو '
باہر پھینک دیا 'ٹائپ 1 یا 2 یا 3:'
پڑھیں -ٹی پندرہکو
پرنٹ ایف 'n'
معاملہ $ ایک میں
* ) باہر پھینک دیا '$ v1۔+$ v2۔=$ (($ v1+$ v2)) '؛؛

* ) باہر پھینک دیا '$ v1۔-$ v2۔=$ (($ v1- $ v2)) '؛؛

* ) باہر نکلیں ؛؛


* ) باہر پھینک دیا 'دوبارہ کوشش کریں.'؛؛
ایساک
ہو گیا

اسکرپٹ کو دو عددی دلیل اقدار کے ساتھ چلائیں۔

$لشکرkey3.sh35۔ پندرہ

آؤٹ پٹ:

مثال نمبر 4:

مندرجہ ذیل اسکرپٹ کے ساتھ ایک باش فائل بنائیں۔ اسکرپٹ ختم ہو جائے گا جب صارف ESC کلید دبائے گا۔ یہ سکرپٹ صارف کی دبائی ہوئی چابیاں چھاپے گا یہاں تک کہ ESC کلید دبائی جائے۔

#!/bin/bash
یوزر ان پٹ=''
باہر پھینک دیا 'چھوڑنے کے لیے ESC کلید دبائیں'
# ایک حرف پڑھیں۔
جبکہ پڑھیں -ن 1۔چابی
کیا
# اگر ان پٹ == ESC کلید۔
اگر [[ $ کلید== $۔'' اور '' ]]؛
پھر
توڑ؛
ہو
# متغیر میں کلید شامل کریں جسے صارف نے دبایا ہے۔
یوزر ان پٹ+=۔$ کلید
ہو گیا
پرنٹ ایف 'nآپ نے ٹائپ کیا ہے:$ یوزر ان پٹ۔n'

اسکرپٹ چلائیں۔

$لشکرkey4.sh

آؤٹ پٹ:

مثال نمبر 5:

مندرجہ ذیل کوڈ کے ساتھ ایک باش فائل بنائیں جو اسکرپٹ کو ختم کرنے کے لیے ENTER کلید کا انتظار کرے گی۔ اسکرپٹ سرور کا نام ان پٹ کے طور پر لے گا اور ہر 2 سیکنڈ میں سرور کو پنگ کرنے کی کوشش کرے گا۔ اگر پنگ کمانڈ کو سرور سے جواب ملتا ہے تو وہ آؤٹ پٹ ڈسپلے کرکے اسکرپٹ کو ختم کردے گا ورنہ یہ پیغام پرنٹ کرکے صارف کے جواب یا ENTER کلید کا انتظار کرے گا۔

#!/bin/bash
باہر پھینک دیا 'سرور کا پتہ درج کریں جسے آپ پنگ کرنا چاہتے ہیں'
پڑھیںسرور
جبکہ ! پنگ -سی -ان $ سرور
کیا
باہر پھینک دیا سے رابطہ قائم کرنے کی کوشش کر رہا ہے۔$ سرور'
باہر پھینک دیا ختم کرنے کے لیے [ENTER] دبائیں '
پڑھیں -ٹی چابی
اگر [[ $ کلید== $۔'x0a' ]]؛# اگر ان پٹ == ENTER کلید۔
پھر
باہر نکلیں
ہو
ہو گیا
پرنٹ ایف '٪ sn' '$ سروربھاگ رہا ہے'

اسکرپٹ چلائیں۔

$لشکرkey5.sh

آؤٹ پٹ:

نتیجہ:

اس ٹیوٹوریل میں دکھایا گیا ہے کہ آپ مختلف طریقوں سے باش سکرپٹ کیسے لکھ سکتے ہیں جو صارف کے ان پٹ کا انتظار کرے گا کہ وہ کوئی خاص کام کرے یا اسکرپٹ ختم کرے۔ امید ہے کہ مذکورہ بالا مثالوں پر عمل کرنے کے بعد ، آپ اسکرپٹ اس طرح لکھ سکیں گے کہ کسی بھی دبانے کا انتظار کر سکیں اور صارف کی طرف سے دبائی گئی کلید کی بنیاد پر خاص کام کر سکیں۔