Chinaunix

标题: read显示提示信息的同时如何加载倒计时函数 [打印本页]

作者: dx8439    时间: 2017-01-03 17:34
标题: read显示提示信息的同时如何加载倒计时函数
a()
{
  for i in `seq -w 3 -1 0`
  do
  echo -ne "\b\b$i"
  sleep 1
  done
  echo ""
}

read -p "是否备份?按“y”键确认备份。三秒内不按键默认不备份,继续运行" -t 3 bak
        bak=${bak:=n}
        if [ $bak = y ];then
                echo "备份"
        fi
echo “继续运行”

现在这个脚本运行后出提示信息,然后按y输出“备份”,不按键默认3秒后退出,输出“继续运行”,我想问,如何在运行read提示"是否备份?按“y”键确认备份。……"这句话的同时又调用a这个函数一起运行,达到不按键,3秒后继续往下运行又能提示秒数。并且还可以随时按“y”打断做备份。


作者: 本友会机友会摄友会    时间: 2017-01-03 18:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: moperyblue    时间: 2017-01-03 20:20

  1. #!/bin/bash
  2. t=3
  3. i=$t
  4. while [[ $i -gt 0 ]]; do
  5.     read -p "是否备份?按“y”键确认备份。$t秒内(剩余$i秒)不按键默认不备份,继续运行" -t $i bak
  6.     echo
  7.     bak=${bak:=n}
  8.     if [ $bak = y ];then
  9.         echo "备份"
  10.         break
  11.     fi
  12.     sleep 1
  13.     ((i--))
  14. done
  15. echo "继续运行"
复制代码

?
作者: dx8439    时间: 2017-01-04 14:38
moperyblue 发表于 2017-01-03 20:20
?

大神,非常感谢

作者: dx8439    时间: 2017-01-04 14:40
本友会机友会摄友会 发表于 2017-01-03 18:03
用read不行,就卡住了。
在powershell命令行同理,不能用read-line。但是捏用powershell解决这个问题不难 ...

谢谢这位兄弟!我会学习学习的。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2