如果我想清除屏幕并在程序的输出超过屏幕上的行数时减少运行,我可以执行以下操作:
mypgm | tee mypgm.out
LEN=$(wc -l mypgm.out | cut -f1 -d' ')
[[ $LEN >= $LINES ]]; then
clear
less -R mypgm.out
fi
只要输出中的行没有环绕,它就可以正常工作,在视觉上占据屏幕上的一行以上。有没有一种简单的方法来确定输出在视觉上占据了多少行,或者我是否必须遍历输出文件,使用 $COLUMNS 计算长行需要显示的“行”数