Что означает `LESS = + / EXAMPLE \:`?

773
isomorphismes

В man parallel_tutorial(для параллельной GNU) я обнаружил следующую черную магию:

LESS=+/EXAMPLE\: man parallel 

Поиск вокруг в manстраницах man, lessи bash, похоже, что это может иметь что - то делать с less препроцессором, но я не уверен, и первые несколько попыток я сделали искать другие страницы руководства с таким синтаксисом не удался.

Что +/...\:значит в bash?

11
В вашем выделенном разделе нет \: отсутствует обратная косая черта. Ты хотел? mike65535 6 лет назад 0
@ mike65535, оно набрано, если вы нажмете «изменить», вы можете увидеть его. Это не отображается, хотя. Aganju 6 лет назад 0
Выход из \ с другой обратной косой чертой должен работать. Короче для меня, чтобы редактировать все же. Orphevs 6 лет назад 0

2 ответа на вопрос

11
grawity

Это ничего не значит в bash . Это некоторый произвольный текст, который сохраняется в переменной окружения $ LESS для этой единственной команды.

Но когда вы запускаете less, он читает содержимое $ LESS и интерпретирует их так же, как аргументы командной строки. Обычно это то место, где вы можете сохранить конфигурацию.

( less не является препроцессором: это простой просмотрщик текстовых файлов, он же пейджер. Обратите внимание, что у manнего нет встроенного считывателя: он просто генерирует текст через groff (фактический препроцессор), затем всегда запускает less или другой пейджер для прокрутите его. Авторы этого руководства предполагают, что ваша система будет использовать меньше, потому что она настолько вездесуща.)

Когда less сталкивается с аргументами, начинающимися с a +, остаток далее интерпретируется как команды или нажатия клавиш для имитации: например, если бы это было +Gменьше, то вы бы притворились, что нажали G после открытия файла, и прокрутите вниз.

В вашем случае меньше притворяется, что вы набрали /EXAMPLE:после открытия файла. /это ключ / команда поиска меньше, а остальное - текст для поиска.

В результате команда открывает man-страницу «параллельный», затем прокручивает страницу вниз до раздела «ПРИМЕР».

Который автор учебника, по-видимому, счел слишком сложным для выражения на обычном английском языке. grawity 6 лет назад 1
Ну, это * is * GNU ...: P Отличный ответ, кстати, выскочил, как только я начал писать, тоже хороший выбор времени! bertieb 6 лет назад 0
Строго говоря, обратная косая черта перед двоеточием _is_ относится к `bash`, так как она не дает двоеточию иметь особое значение, которого у него нет в` bash`, хотя это может быть в другой оболочке. AFH 6 лет назад 1
@grawity Контекст в учебном пособии: «Тогда посмотрите на ПРИМЕРЫ после списка ОПЦИЙ в человеке параллельно (используйте LESS = + / ПРИМЕР \: человек параллельно)». Как бы вы выразили это на обычном английском? Ole Tange 6 лет назад 1
7
bertieb

Как показывает отличный ответ от grawity, это способ дать инструкцию lessпейджеру. В этом конкретном случае, используя руководство и учебник по GNU Parallel, это облегчает чтение примеров.

Как видно из даже оглавления в онлайн-руководстве, каждый пример начинается со строки EXAMPLE:, поэтому команда LESS=+/EXAMPLE: man parallelпозволяет перейти к первому примеру и последующим примерам нажатием n(для следующего соответствия ).

Например:

screencap of jumping through manual

( каждый прыжок в ручной секции - это nнажатие клавиши )