0

在这个 2013 年的问题之后,在终端中显示倒计时,我想稍微改进一下答案,pv以显示进度条。

这是我当前的脚本。

function countdown {
   date1=$((`date +%s` + $1));
   while [ "$date1" -ge `date +%s` ]; do
     echo -ne "$(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r";
     sleep 0.1
   done
}

# 7 minutes countdown
countdown $((7*60))

我该如何改进pv呢?看起来它跟踪写入的进度测量数据。就我而言,我只需要等待,我没有指标可以衡量。

也许截至 2018 年有最好的选择?

谢谢。

4

2 回答 2

0

您无法使用pv. pv代表管道视图,它跟踪数据流的进度。知道大小并测量通过它的数据量,它可以为您提供剩余时间的估计。如果只需要计时器倒计时,pv是没用的。

你已经写了一些可以修饰的东西。网络中存在您需要的其他脚本:http: //handybashscripts.blogspot.com/2012/01/simple-timer-with-progress-bar.html

于 2018-08-26T10:11:30.457 回答
0

只需这样做pv,每秒写入一个字节字符。

secs=$((7 * 60))
while [ $secs -gt 0 ]
do 
  echo -n "."
  sleep 1
  : $((secs--))
done | pv -s $secs > /dev/null

echo -n是为了

  -n     do not output the trailing newline

pv -s是为了

  -s, --size SIZE          set estimated data size to SIZE bytes

sleep 1; : $((secs--))$secs每 1 秒递减一次的值

于 2018-08-27T22:10:58.600 回答