Случайно я выполнил команду
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.