De onde vêm as variáveis de ambiente EDITOR, PAGER, BROWSER?

5

Quando olho em man bash , nada disso está definido. No entanto, publicações aleatórias online referem-se a elas; De onde eles vêm? Ou são apenas uma convenção?

    
por user1529891 01.07.2015 / 19:33

2 respostas

11

Eles são apenas uma convenção tanto quanto qualquer outra convenção. EDITOR e PAGER são mencionados nos padrões como pertencentes a variáveis com as quais você não seria prudente entrar em conflito, uma vez que são amplamente utilizados. Veja Capítulo 8, Seção 1 :

It is unwise to conflict with certain variables that are frequently exported by widely used command interpreters and applications:

...
EDITOR
...
PAGER
...
VISUAL
...

Vários programas respeitam várias combinações deles:

man 1 crontab (POSIX):

   The  following  environment  variables  shall  affect  the execution of
   crontab:

   EDITOR Determine the editor  to  be  invoked  when  the  -e  option  is
          specified.  The default editor shall be vi.

man 8 sudoedit :

 2.   The editor specified by the policy is run to edit the
      temporary files.  The sudoers policy uses the
      SUDO_EDITOR, VISUAL and EDITOR environment variables (in
      that order).  If none of SUDO_EDITOR, VISUAL or EDITOR
      are set, the first program listed in the editor
      sudoers(5) option is used.

man 1 man (POSIX):

ENVIRONMENT VARIABLES
   The following environment variables shall affect the execution of man:
...
   PAGER  Determine  an output filtering command for writing the output to
          a terminal. Any string acceptable as a command_string operand to
          the  sh  -c  command  shall  be valid. When standard output is a
          terminal device,  the  reference  page  output  shall  be  piped
          through  the command.  If the PAGER variable is null or not set,
          the command shall be either more or  another  paginator  utility
          documented in the system documentation.

Não é de surpreender que o manual bash não os mencione, já que nenhum dos bash builtins que eu posso imaginar faz uso de qualquer um deles. No entanto, eles são amplamente usados em outros utilitários, e esses três são apenas os que usam comumente.

A variável BROWSER não está na mesma liga que EDITOR ou PAGER - não é mencionada pelos padrões. No entanto, alguns programas podem usá-los, como man :

man 1 man (Debian):

BROWSER
      If $BROWSER is set, its value is a colon-delimited list of  com-
      mands,  each  of  which  in  turn  is used to try to start a web
      browser for man --html.  In each command, %s is  replaced  by  a
      filename  containing  the HTML output from groff, %% is replaced
      by a single percent sign (%), and %c is replaced by a colon (:).
    
por 01.07.2015 / 19:44