less não tem a menor idéia do que está no outro lado do canal que está alimentando dados para ele via entrada padrão, a menos que alguém complique muito o código para less para encontrar o grupo de processos que less está em execução e outros processos nesse grupo de processos e, em seguida, quem sabe como todos eles se encaixam (o shell conhece essas informações, mas pode não disponibilizá-las).
De algumas leituras em less(1) , pode-se encontrar a opção -P para personalizar o prompt
$ echo hi | less -P '?f%f:Standard input'
hi
Standard input
então, em teoria, se pudermos substituir o Standard input bit pelo pipeline atual do shell ... vamos ver o que é set quando less é executado ...
$ function less { set > whatisset; command less "$@"; }
$ echo foo | less
foo
$ egrep 'echo|foo' whatisset
$
então nada é óbvio para usar em mksh , já que echo ou foo (equivalente ao seu grep ) não aparecem em nenhum lugar no ambiente shell (mesma história para zsh e oh wow faz bash no Linux já spam o ambiente com configurações, mas novamente a mesma história). Na verdade, com zsh , podemos usar uma função preexec para disponibilizar a linha de comando:
$ zsh
% function preexec { shift; SHORT=$1; }
% function less { set > whatisset; command less "$@"; }
% echo foo | less
foo
% grep SHORT whatisset
SHORT='echo foo | less'
%
para que alguém possa fazer algo como
% less() { =less -P '?f%f:'${SHORT%% | less} "$@"; }
% echo hi|less
hi
echo hi