
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
対称のためのランダムフィルタです。