BASH:我如何在watch命令中输出

时间:2014-08-15 19:31:53

标签: bash watch

我的linux'观看'命令很老,不支持颜色'选项。我怎么能像它一样有相同的输出?因为在我的脚本中,循环一个接一个地给出输出(当然)。但我需要它来取代以前的。终端输出有什么技巧吗?

#!/bin/bash

while true
do
/usr/sbin/asterisk -rx "show queue My_Compain" \
| grep Agent \
| grep -v \(Unavailable\) \
| sort -t"(" -k 2 \
| GREP_COLOR='01;31' egrep -i --color=always '^.*[0-9] \(Not in use.*$|$' \
| GREP_COLOR='01;36' egrep -i --color=always '^.*\(Busy*$|$'
sleep 2
done

1 个答案:

答案 0 :(得分:1)

您可以在转储输出之前使用clear清除屏幕,以显示就地更新的外观。

为了减少眨眼,你可以使用古老的双缓冲技术:

#!/bin/bash

while true
do
  buffer=$(
    clear
    /usr/sbin/asterisk -rx "show queue My_Compain" \
    | grep Agent \
    | grep -v \(Unavailable\) \
    | sort -t"(" -k 2 \
    | GREP_COLOR='01;31' egrep -i --color=always '^.*[0-9] \(Not in use.*$|$' \
    | GREP_COLOR='01;36' egrep -i --color=always '^.*\(Busy*$|$'
  )
  echo "$buffer"
  sleep 2
done