Перейти к содержимому

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

11

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

LESS=+/EXAMPLE\: man parallel 

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

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

918 просмотров
isomorphismes спросил 8 лет назад
I 844

2 ответа

11

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

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

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

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

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

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

Который автор учебника, по-видимому, счел слишком сложным для выражения на обычном английском языке.

grawity · 8 лет назад · 1

Ну, это * is * GNU ...: P Отличный ответ, кстати, выскочил, как только я начал писать, тоже хороший выбор времени!

bertieb · 8 лет назад · 0

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

AFH · 8 лет назад · 1

@grawity Контекст в учебном пособии: «Тогда посмотрите на ПРИМЕРЫ после списка ОПЦИЙ в человеке параллельно (используйте LESS = + / ПРИМЕР : человек параллельно)». Как бы вы выразили это на обычном английском?

Ole Tange · 8 лет назад · 1
grawity ответил 8 лет назад
G 229 123
7

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

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

Например:

screencap of jumping through manual

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

bertieb ответил 8 лет назад
B 5 527