【发布时间】:2014-10-09 13:49:40
【问题描述】:
我的 linux 'watch' 命令很旧,不支持 '--color' 选项。我怎样才能有相同的输出呢?因为在我的脚本中,循环一个接一个地给出输出(当然)。但我需要它来代替以前的。终端输出有什么技巧吗?
#!/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
【问题讨论】:
-
你希望输出是什么样的?
-
如果您希望屏幕显示在原地更新而不是附加到旧结果,您可以添加
clear作为循环的第一行。 -
@that other guy 谢谢,就是那个。我希望它可以在不眨眼的情况下更快地工作
-
clear实际上只是将一堆空行发送到终端,迫使旧输出向上移动并移出视线,因此您无法摆脱轻微的眨眼。printf可以在格式化终端输出方面做很多事情,这几乎是事实上的,所以如果你想要更多尝试切换到输出。 -
@Matt Green,它对于单行来说可能很容易......有没有什么好的例子可以在 bash 中为多行做到这一点?