Самая значительная проблема при попытке сделать это состоит в том, чтобы отключить его при запуске программ, которым нужен tty.
Что я бы порекомендовал, так это для программ и утилит, которые вы часто используете, создаватьфункции оболочки, которые обертывают их и передают less -F
.В некоторых случаях вы можете назвать функцию так же, как и программу, и она будет иметь приоритет, но ее можно переопределить.
Вот пример функции-оболочки, которая потребует тестирования и, возможно, некоторого дополнительного кода для обработки краевых случаев.и т. д.
#!/bin/bash
foo () {
if [[ -p /dev/stdout ]] # you don't want to pipe to less if you're piping to something else
then
command foo "$@" | less -F
else
command foo "$@"
fi
}
Если вы используете такое же имя, как у меня в примере, это может привести к поломке вещей, которые ожидают другого поведения.Чтобы переопределить функцию для запуска основной программы, непосредственно перед ней введите command
:
command foo
запустит foo
без использования функции с тем же именем.