Zsolt, избегайте жестко закодированных имен файлов, используйте вместо этого переменную HISTFILE, с запасным вариантом, если вы действительно параноик: $ {HISTFILE: - ~ / .bash_history}; -)
Какая-то необходимость просматривать файлы истории ?! Вы потеряете номер истории, что необходимо для репликации команды (например,! 33 для повторного выполнения 33-й записи из вашей истории) без необходимости копировать и вставлять вывод grep.
Имейте в виду, что использование такого рода расширений $ @ может привести к сбою на разных (эпических) уровнях. Например, аргумент, начинающийся с «-» (histgrep -h), обычно будет зависать или стрелять себе в ногу. Действительно, этот базовый пример можно легко обойти, следуя классическому "-" способу разделения аргументов от параметров , но обсуждение не имеет конца, помня, что аргументы должны быть при условии, что взломать будут регулярные выражения. ; -)
О, и не является ли Histgrep слишком многословным выбором? h, i, Tab, g, Tab:)
ИМХО, я бы придерживался ^ R, возвращаясь к истории | grep ... всякий раз, когда это необходимо.
Во всяком случае, ради примера, я бы (лениво) переписал этого маленького помощника как:
function hgrep() { history | grep -P -- "$*"; }