我的 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
清除屏幕,以提供就地更新的外观。
要减少眨眼,您可以使用古老的双缓冲技术:
#!/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
关于BASH:我如何像 watch 命令一样输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332975/