A melhor maneira de gerenciar variantes do $ PATH?

1

Estou procurando uma maneira de gerenciar com mais facilidade minhas variáveis $PATH .

executar $PATH me retorna:

/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin: No such file or directory

Para mim, isso é uma porcaria total e difícil de ler.

Eles podem ser listados assim:

/usr/local/bin:
/usr/local/sbin:
/usr/local/mysql/bin:
/opt/local/bin:
/opt/local/sbin:
/usr/bin:/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin: No such file or directory

Eu adoraria gerenciar meu $ PATH usando Ruby, mas naturalmente parece que eu preciso ficar como parte dos meus arquivos de configuração do shell.

    
por JP Silvashy 08.02.2010 / 18:53

5 respostas

1

Você pode listar seu pathspec em várias linhas, como:

PATH=\
/a:\
/b:\
/c:\
/d

Você também pode acrescentar coisas ao seu caminho fazendo

PATH=${PATH}:/new:/stuff

para que você possa ter

PATH=/a
PATH=${PATH}:/b
(etc)

Correndo o risco de soar como um velho administrador * NIX, por favor não faça coisas estranhas e engraçadas como escrever um script ruby para gerenciar o PATH para você - você não vai editar isso com muita frequência (se você provavelmente está fazendo algo errado), e será melhor atendido neste caso, seguindo os mesmos padrões que todos os outros, especialmente se / quando precisar pedir ajuda a alguém.

A lista de caminhos delimitados por dois pontos não é tão terrível no grande esquema de coisas mal formatadas que você encontrará no mundo: -)

    
por 08.02.2010 / 20:09
1
echo $PATH | sed 's/:/:\n'

Você pode fazer algo nos moldes de:

PATH=$(ruby_prog $PATH)

em um script de inicialização (ou outro script originado) ou no prompt do shell.

    
por 08.02.2010 / 18:58
1

O $ PATH precisa ter a aparência, embora você provavelmente possa dividir as linhas usando uma barra invertida (não testado, não tem um * nix ou uma máquina Linux disponível).

Por que você não escreve um script Ruby para analisá-lo para você e torná-lo legível e permite editá-lo? Isso vai ser um pequeno projeto legal.

    
por 08.02.2010 / 19:59
1

Se o seu servidor tem Perl e você não se importa em usá-lo, então você pode tentar este one-liner para exibir seu PATH (não gerenciá-lo):

printenv PATH | perl -nl -0x3A -e 'print ++$i, " ", $_;'

Eu escrevi os detalhes sobre este no meu blog de tecnologia .

    
por 10.02.2010 / 00:05
0

Na maioria dos servidores, temos ambientes de aplicativos de 64 bits e 32 bits.

Tudo 32-bit é compilado em / opt / 32, tudo em 64-bit em / opt / 64.

Em seguida, temos um script "set_env" em ambas as pastas, que define as variáveis relevantes PATH e LD_LIBRARY_PATH. Se quisermos executar algo de 32 bits, digitamos

. /opt/32/set_env

ou 64 bits:

. /opt/64/set_env

O formato é, como voretaq7 sugeriu, apresentado da seguinte forma:

export PATH="\
/opt/32/app1/bin:\
/opt/32/app2/bin:\
/opt/32/app3/bin"

(substitua 32 por 64 no script de 64 bits).

Apenas não faça o que eu fiz originalmente e indente as linhas, porque então ele se torna "/ opt / 32 ..." - observe os espaços, o que não é um caminho válido para o sistema de arquivos!

    
por 08.02.2010 / 20:42

Tags