Como eu uso eficientemente variáveis de ambiente?

0

Estou curioso para saber como escolher o env correto. variáveis. Como fazer para definir o que env. variável iria fazer o trabalho

Exemplo:

se você quiser ter certeza de que o histórico de comandos sempre foi escrito imediatamente, coloque esse comando na variável PROMPT_COMMAND ( curiosidade surgiu desta solução ):

export PROMPT_COMMAND='history -a'

Este é o meu dilema: como PROMPT_COMMAND foi escolhido para fazer o trabalho. Como eu adquiro esse talento?

    
por juggernauthk108 01.02.2016 / 17:23

3 respostas

3

Se você estiver usando bash como seu shell padrão, é possível definir PROMPT_COMMAND .

Você geralmente encontra dicas ou orientações detalhadas nas páginas de manual de um comando (on-line a partir do bash página man ) ou digitando man bash por exemplo:

PROMPT_COMMAND
If set, the value is executed as a command prior to issuing each primary prompt.

Eu propus outra solução usando este env var um tempo atrás: Adicionando um sufixo no final de cada comando do shell .

Pergunte ao Ubuntu é uma mina de ouro para quem quer aprender e descobrir mais sobre o Linux.

    
por Sylvain Pineau 01.02.2016 / 17:40
2

Leia o man page do programa que você está tentando influenciar com uma variável de ambiente. Por PROMPT_COMMAND é man bash . Como os programas geralmente usam todas as variáveis de ambiente maiúsculas, e variáveis de ambiente são passadas para programas como strings, (no array env , junto com o array argv ) e acessadas pelo nome, você pode gerar uma lista incluindo todo o ambiente variáveis observadas por um programa via (altere bash para o programa em que você está interessado):

strings $(type -p bash) | egrep '^[A-Z0-9]+$'

Ou substitua o $(type -p bash) pelo caminho real do binário.

A configuração de usuário de variáveis de ambiente geralmente é feita em ~/.bashrc ou em um arquivo chamado por ~/.bashrc , assim:

export LESS="-XMersj3"

Isso define minhas opções padrão para less (consulte man less ).

Após uma alteração em ~/.bashrc , você deve criar o arquivo (via . ~/.bashrc ) para preencher seu ambiente com as definições atualizadas. O logout / in também reabastece ~/.bashrc , MAS se você quebrou o ~/.bashrc , você pode ter problemas para fazer o login.

    
por waltinator 01.02.2016 / 17:52
1
% bl0ck_qu0te%

PROMPT_COMMAND é uma das variáveis específicas de bash , que executa seu valor como um comando antes de imprimir o prompt $PS1 na tela. Por padrão, não está definido.

% bl0ck_qu0te%

Ao ler a página man do bash , man bash no terminal. Há uma lista de variáveis de ambiente lá. Não há talento, apenas prática. E RTFM, muito.

    
por Sergiy Kolodyazhnyy 01.02.2016 / 17:47