Em man parallel_tutorial
(para GNU paralelo), encontrei a seguinte magia negra:
LESS=+/EXAMPLE\: man parallel
Pesquisando em torno das man
páginas para man
, less
e bash
, ao que parece isso pode ter algo a ver com um less
pré-processador , mas eu não tenho certeza, e as primeiras tentativas que fiz para procurar outras páginas de manual com esta sintaxe falhou.
O que +/...\:
significa bash?
Respostas:
Isso não significa nada no bash . É algum texto arbitrário que é armazenado na variável de ambiente $ LESS para esse único comando.
Mas quando você executa
less
, ele lê o conteúdo de $ LESS e os interpreta como argumentos da linha de comando. Geralmente é aqui que você armazena a configuração.( less não é um pré-processador: é um visualizador de arquivo de texto simples, também conhecido como pager. Observe que
man
não possui leitor embutido: ele gera apenas o texto via groff (o pré-processador atual) e, em seguida, sempre executa menos ou algum outro pager para Os autores desse tutorial assumem que seu sistema usará menos porque é onipresente.)Quando menos encontra argumentos começando com a
+
, o restante é interpretado como comandos ou pressionamentos de teclas para simular: por exemplo, se fosse+G
menor, fingiria que você pressionou G após abrir o arquivo e rolaria para baixo.No seu caso, menos finge que você digitou
/EXAMPLE:
após abrir o arquivo. /é a chave / comando de pesquisa em menos e o restante é o texto a ser pesquisado.O resultado é que o comando abre a página de manual "paralela" e depois rola para a seção intitulada "EXEMPLO".
fonte
bash
, pois impede o cólon de ter um significado especial, o qual não possuibash
, embora possa ter outra concha.Como a excelente resposta do grawity indica , é uma maneira de dar uma instrução ao
less
pager. Nesse caso específico, usando o manual e o tutorial do GNU Parallel, facilita a leitura dos exemplos.Como você pode ver até no índice do manual on - line , cada exemplo começa com a string
EXAMPLE:
, então o comandoLESS=+/EXAMPLE: man parallel
permite pular para o primeiro exemplo e os exemplos subseqüentes pressionando n(para a próxima correspondência ).Por exemplo:
( cada salto na seção manual é npressionado )
fonte