![기록 명령을 단순화하는 기능을 향상시키는 방법](https://linux55.com/image/94807/%EA%B8%B0%EB%A1%9D%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EB%8B%A8%EC%88%9C%ED%99%94%ED%95%98%EB%8A%94%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%A4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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
대칭을 위한 무작동 필터입니다.