Você classificou com erro PATH
e os dois EDITOR
e VISUAL
pertencem a ele.
A ideia de que essas variáveis pertencem a aplicativos específicos está errada. Eles são padronizados e podem ser usados por qualquer qualquer aplicativo que precise deles.
- Se qualquer aplicativo quiser pesquisar um caminho para programas executáveis, ele poderá usar
PATH
. (E, de fato, esse é o caso de qualquer aplicativo que chameexecvp()
.) - Se qualquer aplicativo quiser invocar um shell, ele poderá usar
SHELL
para localizar o arquivo de imagem do programa. - Se qualquer aplicativo quiser invocar um editor de linha, ele poderá usar
EDITOR
.
- Se qualquer aplicativo quiser invocar um editor visual, ele poderá usar
VISUAL
. - Se qualquer aplicativo quiser invocar um pager, ele poderá usar
PAGER
. - Se qualquer aplicativo quiser saber onde o diretório base está, ele poderá usar
HOME
.
E assim por diante.
Por outro lado, HISTIGNORE
e PS1
nem precisam ser realmente variáveis de ambiente; e somente este último é mencionado (embora sem explicação) no padrão. Um pode defini-los como variáveis de ambiente, em um processo de líder de sessão ou em algum outro pai de nível superior, e confiar na herança de ambiente para importá-los por shells.
Mas é possível definir como variáveis shell , em um script executado automaticamente por cada shell (os específicos que dependem do shell) e não exportá-los para o ambiente. Por exemplo: eu tenho minhas variáveis ~/.zshrc
set PS1
e RPROMPT
as shell , e elas não são exportadas para ambiente variáveis em tudo.
Leitura adicional
- "Outras variáveis de ambiente" . Definições Base . Única especificação do UNIX. IEEE 1003.1. 2018. O Grupo Aberto.
-
execvp()
. Interfaces do sistema . Única especificação do UNIX. IEEE 1003.1. 2018. O Grupo Aberto. - VISUAL vs EDITOR, qual é a diferença?
- Qual é o comando 'editor' no bash?
- Comando para o editor de texto padrão no terminal
- Quais sistemas têm atalho / apelido 'pager'?
- Como se livrar dos avisos de "nano não encontrado", sem instalar o nano?