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
대칭을 위한 무작동 필터입니다.