Is there any way to exit “less” follow mode without ^C?
Não, mas você pode organizar as coisas para que CTRL - C não afete outros processos no pipe, permitindo que eles sejam executados.
Solução A - movendo-se menos para o seu próprio grupo de processos usando o modo monitor do shell ( set -m
)
while sleep 0.5
do
echo "$(cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 100)"
done | (set -m; less -R)
A ideia vem do PSkocik e foi dada em sua resposta .
Solução B - manipulando SIGINT ( CTRL - C ) para que não seja entregue a outros processos no pipe
(trap '' SIGINT; exec bash -c 'while sleep 0.5
do
echo "$(cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 100)"
done') | less -R
Solução dada por geirha no canal #bash do IRC.