मेरे पास थोड़ी देर का लूप है, मैं इसे रोकना चाहूंगा जब उपयोगकर्ता कीबोर्ड पर "s" अक्षर दबाएगा।
मुझे एक "ट्रैप" और रिश्तेदार सिग्नल का उपयोग करके समस्या का प्रबंधन करना चाहिए, जो कि डिफ़ॉल्ट ब्लॉक द्वारा "ctrl + c" के संयोजन के साथ है, लेकिन मुझे "s" दबाकर समान प्रभाव होना चाहिए।
(मुझे कमांड पढ़ने का उपयोग करने की आवश्यकता नहीं है)
आज्ञाओं को कहाँ रखें?
क्या आप मुझे समझा सकते हैं?
धन्यवाद
कोड:
!/bin/bash
while true
do
echo text text text text
done
उत्तर:
जवाब के लिए 0 № 1निम्नलिखित क्या है Aserre कहते हैं:
#!/bin/bash
if [ -t 0 ]; then stty -echo -icanon -icrnl time 0 min 0; fi
keypress=""
while [ "$keypress" != "s" ]; do
echo text text text
keypress="`cat -v`"
done
if [ -t 0 ]; then stty sane; fi
जवाब के लिए 0 № 2
मैं डॉन 't पता है कि तुम क्यों डॉन' टी का उपयोग करना चाहते हैं read
जैसा कि यह उतना ही सरल होगा
#! /bin/bash
while :
do
echo "text text text"
read -t 0.3 -n 1 k
[[ "$k" == "s" ]] && break
done