hold=' '
printf "Press 'SPACE' to continue or 'CTRL+C' to exit : "
tty_state=$(stty -g)
stty -icanon
until [ -z "${hold#$in}" ] ; do
in=$(dd bs=1 count=1 </dev/tty 2>/dev/null)
done
stty "$tty_state"
यह अब एक अनुगामी न्यूलाइन के बिना एक संकेत प्रिंट करता CTRL+C
है, मज़बूती से संभालता है, stty
केवल आवश्यकतानुसार जितनी बार आह्वान करता है, और इसे नियंत्रित करने के लिए नियंत्रित ट्टी को पुनर्स्थापित करता है, जिसमें stty
यह पाया गया था। में देखो man stty
कैसे स्पष्ट रूप से गूँज, नियंत्रण वर्ण और सभी को नियंत्रित करने के बारे में जानकारी के लिए।
आप भी ऐसा कर सकते हैं:
printf "Press any key to continue or 'CTRL+C' to exit : "
(tty_state=$(stty -g)
stty -icanon
LC_ALL=C dd bs=1 count=1 >/dev/null 2>&1
stty "$tty_state"
) </dev/tty
आप इसके साथ कर सकते हैं ENTER
, कोई [
परीक्षण ]
नहीं और कोई stty
पसंद नहीं :
sed -n q </dev/tty