So I want to wait 1 second for some input (options that i will implement later). Or i want the program to print something(will implement later too). I have run into a problem tho, when trying to read that 1 char for the function, here is my code:
while true
do read $var -t 1
case $var in
("h")
help
;;
esac
done
If I try to echo after the case, the program does wait for 1 second, the problem is it doesnt recognise my h input, how would i fix that?
I've modified your sample slightly so that it works. There was an error in the read statement. use
read var
instead ofread $var
. This corrected sample will now recognise also theh
input.Related to your question Why it doesn't wait the second (which was btw. hard to determine so i increased the timeout a bit ;-) )? This is because when you enter something, the read timeout is interrupted. It is as the parameter name say's a timeout for the user input. So if the user input's something the timeout is interrupted.