我想出了这个片段来简化滚动缓冲区的使用history
并防止滚动缓冲区的泛滥:
h() {
if [ $# -eq 1 ]; then
history | grep $1 | tail -n $(expr $(tput lines) - 1)
else
history | tail -n $(expr $(tput lines) - 1)
fi
}
如何简化以避免重复?
答案1
请注意,grep
空模式''
匹配每一行,您可以随时使用它而无需测试:
h(){
history | grep "$1" | tail -n $(($(tput lines)-1))
}
答案2
您可以通过管道输入和输出条件语句:
h() {
history |
if [ $# -eq 1 ]; then
grep $1
else
cat
fi |
tail -n $(expr $(tput lines) - 1)
}
这cat
是一个用于对称性的无操作滤波器。