I'm writing Bash script that requires you to enter numbers only. How do I prevent non-numbers from being displayed as they are typed? For example, if I type 123ab45c6 at the prompt, only 123456 should be appear on the screen.
#/bin/bash
echo "Please enter a number"
# variable to store the input
number=""
# reading in silent mode character by character
while read -s -n 1 c
do
case $c in
[0-9])
# if the read character is digit add it to the number and print the number
number="${number}${c}"
echo -en "\r${number}"
;;
'')
# break on ENTER
echo
break;;
esac
done
echo "You entered a number ${number}"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With