O que o exec $ SHELL faz?

2

Por acidente, eu corri o comando

exec $SHELL -l

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

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

i.e. 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 o Ruby 1.9.3 no meu sistema, que instalei com o Rbenv.

rbenv version
1.9.3-p327

No entanto, quando eu tento instalar gems, estou recebendo uma mensagem de erro que eles exigem pelo menos ruby 1.9.2, por isso estou assumindo que a máquina ainda está usando a versão do Ruby que vem com o meu Mac. Eu tentei consertar isso por

gem install bundle
rbenv rehash
bundle install

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

    
por BrainLikeADullPencil 02.01.2013 / 03:59

1 resposta

2

$SHELL refere-se ao seu shell (interpretador de comandos). A maioria das shells reconhecem a opção –l (letra minúscula L) para significar que é uma “shell de login”, o que significa que lê e processa arquivos de comando extras (por exemplo, csh sempre lê .cshrc , mas se é um “shell de login”, também lê .login ). Você iniciou um novo processo do shell em execução e disse para ele agir como “shell de login”.

Alguns shells (acredito que bash é um) mantêm o controle dos processos hierárquicos do shell e permitem que o usuário exiba a profundidade ou o nível. Isso é frequentemente incorporado ao prompt do shell, como em:

 (prompt string)pwd
/dir1
 (prompt string)$SHELL
 (prompt 2 string)cd ../dir2                # Note that the shell level is2,
 (prompt 2 string)rm *                            # indicating that you are in a new shell process.
 (prompt 2 string)exit
 (prompt string)pwd                                   # Note return to original shell process.
/dir1

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

    
por 02.01.2013 / 04:52

Tags