기록 명령을 단순화하는 기능을 향상시키는 방법

기록 명령을 단순화하는 기능을 향상시키는 방법

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

관련 정보