EDITOR, PAGER 및 BROWSER 환경 변수는 어디에서 왔습니까?

EDITOR, PAGER 및 BROWSER 환경 변수는 어디에서 왔습니까?

내가 봤을 때 man bash이들 중 어느 것도 정의되어 있지 않았습니다. 그러나 온라인에서 무작위로 언급되는 게시물은 어디에서 왔습니까? 아니면 단지 컨벤션일까요?

답변1

그것들은 다른 것과 마찬가지로 단지 관습일 뿐입니다. 표준에서는 너무 널리 사용되기 때문에 사용하는 것이 현명하지 못한 충돌하는 변수에 속하는 것으로 언급됩니다 EDITOR. PAGER바라보다제8장 제1절:

널리 사용되는 명령 해석기 및 응용 프로그램에서 자주 내보내는 특정 변수와 충돌하는 것은 현명하지 않습니다.

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

다양한 프로그램은 이들의 다양한 조합을 존중합니다.

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.

매뉴얼에 언급되지 않은 것은 놀라운 일이 아닙니다 bash. 왜냐하면 제가 생각할 수 있는 bash 내장 기능 중 어느 것도 사용할 수 없기 때문입니다. 그러나 그들은 다른 유틸리티에서 널리 사용됩니다. 이 세 가지는 단지일반적으로 사용되는.


이 변수 BROWSER는 또는 같은 수준에 있지 않습니다. 이 변수는 표준에 언급되지 않습니다. 그러나 다음과 같은 일부 프로그램에서는 이를 사용할 수 있습니다.EDITORPAGERman

man 1 man(데비안):

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 (:).

답변2

이 관행은 제가 기억하는 한 30년 넘게 계속되어 왔습니다.

이것BSD 4.2 메일 매뉴얼 페이지1983 년 4월 1일에 언급됨 EDITOR,,, SHELL.VISUAL

PAGER"man"의 BSD 4.2 버전은 다음을 언급하지 않습니다:

표준 출력이 텔레타이프이거나 - 플래그가 주어지면 man은 출력을 cat(1)을 통해 전송합니다.

하지만 1990년경 4.3 리노에 등장했다.

관련 정보