
Я пытаюсь прочитать отфильтрованную версию некоторых файлов, less
используя LESSOPEN
переменную окружения, но независимо от того, насколько прост мой препроцессор, команда зависает, пока я не отправлю ее SIGINT
с помощью Ctrl+C:
LESSOPEN='||cat' less foo bar
Что я делаю не так? (Обратите внимание, что я не могу просто передать входные данные как канал, поскольку я открываю несколько файлов в отдельных буферах.)
решение1
Вы забыли %s
, без которого cat
имя файла не будет получено, и он просто ждет ввода со стандартного ввода:
LESSOPEN='||cat %s' less foo bar # works
LESSOPEN='||cat' less foo bar # hangs
Theстраница руководстваговорит:
Чтобы настроить входной препроцессор, установите переменную окружения LESSOPEN в командную строку, которая вызовет ваш входной препроцессор. Эта командная строка должна включать одно вхождение строки "%s", которая будет заменена именем файла при вызове команды входного препроцессора.