Что делает exec $SHELL -l?

Что делает exec $SHELL -l?

Случайно я выполнил команду

exec $SHELL -l

в моем терминале, и это изменило внешний вид моего приглашения

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

т.е. после Macintosh стоит "-2"

Macintosh:~ myname$
Macintosh-2: myname$

Я не уверен, может ли это быть причиной некоторых проблем в моей системе.

Я пытаюсь использовать Ruby 1.9.3 в своей системе, которую я установил с помощью Rbenv.

rbenv version
1.9.3-p327

Однако, когда я пытаюсь установить gems, я получаю сообщение об ошибке, что им требуется как минимум ruby ​​1.9.2, поэтому я предполагаю, что машина все еще использует версию Ruby, которая идет с моим Mac. Я попытался исправить это с помощью

gem install bundle
rbenv rehash
bundle install

но я продолжаю получать одно и то же сообщение об ошибке, что требуется как минимум Ruby 1.9.2, поэтому мне интересно, не мешает ли запуск exec $SHELL -lпо какой-то причине установке гемов.

решение1

$SHELLотносится к вашей оболочке (командному интерпретатору). Большинство оболочек распознают –lопцию (строчная буква L) как означающую, что это «оболочка входа», что в первую очередь означает, что она считывает и обрабатывает дополнительные командные файлы (например, cshвсегда считывает .cshrc, но если это «оболочка входа», она также считывает .login). Вы запустили новый процесс оболочки и указали ему действовать как «оболочка входа».

Некоторые оболочки (я думаю, bashодна из них) отслеживают иерархические процессы оболочки и позволяют пользователю отображать глубину или уровень. Это часто включается в приглашение оболочки, например:

 (строка подсказки)pwd
/dir1
 (строка подсказки)$SHELL
 (быстрый 2 нить)cd ../dir2                # Обратите внимание, что уровень оболочки2,
 (быстрый 2 нить)rm *                            # указывая, что вы находитесь в новом процессе оболочки.
 (быстрый 2 нить)exit
 (строка подсказки)pwd                                   # Обратите внимание на возврат к исходному процессу оболочки.
/dir1

Это не должно иметь никакого отношения к вашей проблеме с RubyGems.

Связанный контент