O que exec $SHELL -l faz?

O que exec $SHELL -l faz?

Por acidente, executei o comando

exec $SHELL -l

no meu terminal, e isso mudou a aparência do meu prompt

Macintosh:~ myname$ exec $SHELL -l
Macintosh-2:~ myname$ cd

ou seja, há um "-2" depois do Macintosh

Macintosh:~ myname$
Macintosh-2: myname$

Não tenho certeza se isso pode ser responsável por alguns problemas que estou tendo no meu sistema.

Estou tentando usar Ruby 1.9.3 no meu sistema, que instalei com Rbenv.

rbenv version
1.9.3-p327

No entanto, quando tento instalar gems, recebo uma mensagem de erro informando que elas exigem pelo menos Ruby 1.9.2, então presumo que a máquina ainda esteja usando a versão do Ruby que vem com meu Mac. Eu tentei consertar isso

gem install bundle
rbenv rehash
bundle install

mas continuo recebendo a mesma mensagem de erro sobre a necessidade de pelo menos Ruby 1.9.2, então estou me perguntando se o efeito da execução exec $SHELL -lestá impedindo a instalação de gemas por algum motivo.

Responder1

$SHELLrefere-se ao seu shell (interpretador de comandos). A maioria dos shells reconhece a –lopção (L minúsculo) para significar que é um “shell de login”, o que significa principalmente que ele lê e processa arquivos de comando extras (por exemplo, cshsempre lê .cshrc, mas se for um “shell de login”, também lê .login). Você iniciou um novo processo de shell em execução e disse para ele agir como “shell de login”.

Alguns shells (acredito bashque seja um deles) rastreiam os processos hierárquicos do shell e permitem que o usuário exiba a profundidade ou nível. Isso geralmente é incorporado ao prompt do shell, como em:

 (sequência de prompt)pwd
/dir1
 (sequência de prompt)$SHELL
 (incitar 2 corda)cd ../dir2                # Observe que o nível do shell é2,
 (incitar 2 corda)rm *                            # indicando que você está em um novo processo shell.
 (incitar 2 corda)exit
 (sequência de prompt)pwd                                   # Observe o retorno ao processo shell original.
/dir1

Isso não deve ter nada a ver com o seu problema com RubyGems.

informação relacionada