是否可以超时c shell的用户输入?到目前为止我的代码是:
#!/bin/csh -f
set COUNT = 5
printf "INFO: Start ok (0/1)? "
set INPUT = 0
while ($COUNT > 0 && $INPUT == 0)
printf "\b%d" "$COUNT"
set INPUT = <$
sleep 1
@ COUNT --
end
if ($INPUT == 1) then
./execute.sh
end
如果没有给出输入,我想执行一个shell脚本;如果不是我想跳过这一部分。 不幸的是,skript没有跳过输入部分但是等待输入。解决这个问题的方法有哪些 非常感谢你们!
答案 0 :(得分:0)
尝试使用tcsh shell中的非阻塞用户输入:
set TMPFILE = `mktemp`
set COUNT = 5
printf "INFO: Start ok (0/1)? "
stty -F /dev/tty -icanon
while ($COUNT > 0 && -z $TMPFILE)
printf "\b%d" "$COUNT"
sleep 1
(dd bs=1 count=1 iflag=nonblock > $TMPFILE) >& /dev/null
set INPUT = `cat $TMPFILE`
@ COUNT--
end
stty -F /dev/tty icanon
echo ""
if ("$INPUT" == "1") then
./execute.sh
endif