Есть несколько случаев:
- RVM не установлен
- RVM установлен, но не используется (то есть его биндир добавлен в PATH, но не получен)
- RVM установлен и используется, но не загружен (т.е. он получен, но вы проверяете это из скрипта)
- RVM установлен и используется
Единственный способ проверки всех четырех случаев, который я нашел, - это проверка переменных среды, начинающихся с rvm_
:
env | egrep -v '^PATH' | egrep '^rvm_path'
Мы можем проверить такие переменные, как MY_RUBY_HOME
или GEM_HOME
, но они могут быть переопределены пользователем вручную, поэтому это не гарантирует, что мы используем RVM.
Если вы собираетесь использовать приведенную выше команду в сценарии, вы можете перефразировать ее следующим образом и проверить код выхода:
env | egrep -v '^PATH' | egrep -q '^rvm_path'
Конечно, если вам просто нужно выяснить, есть ли на диске RVM и доступен ли он, вы можете выбрать более простые, такие как предложенные здесь.