Se observarmos que grep
com um padrão vazio ''
corresponde a todas as linhas, você pode usá-lo sem testes:
h(){
history | grep "$1" | tail -n $(($(tput lines)-1))
}
Eu criei este snippet para simplificar o uso de history
e evitar a inundação do buffer de rolagem:
h() {
if [ $# -eq 1 ]; then
history | grep $1 | tail -n $(expr $(tput lines) - 1)
else
history | tail -n $(expr $(tput lines) - 1)
fi
}
Como pode ser simplificado evitar a repetição?
Se observarmos que grep
com um padrão vazio ''
corresponde a todas as linhas, você pode usá-lo sem testes:
h(){
history | grep "$1" | tail -n $(($(tput lines)-1))
}
Você pode inserir e excluir declarações condicionais:
h() {
history |
if [ $# -eq 1 ]; then
grep $1
else
cat
fi |
tail -n $(expr $(tput lines) - 1)
}
O cat
é um filtro não operacional para simetria.
Tags bash command-history function