Как работает эта Ruby командная строка? Кажется, работает сценарий CMD с Ruby - PullRequest
1 голос
/ 15 января 2020

Я изучаю, как работает ridk enable, чтобы выяснить, как подключить его к логике сборки Travis CI c. (Я изучаю установку Ruby, установленную RubyInstaller + Devkit локально; команды запускаются из командной строки «Start Command Prompt with Ruby».)

Я застрял в командной строке Ruby, выполняемой под капотом, чья работа для меня загадка:

"C:\Ruby24-x64\bin\ruby" --disable-gems -x 'C:\Ruby24-x64\bin\ridk.cmd' enable

Кажется, что запускается сценарий CMD (?!) С Ruby - что не должно быть возможным. Запуск его с -rtracer вместо --disable-gems показывает, что выполнение каким-то образом заканчивается прыжком в C:/Ruby24-x64/lib/ruby/site_ruby/2.4.0/ruby_installer/runtime/ridk.rb.

Может кто-нибудь объяснить мне, как работает эта командная строка?

1 Ответ

2 голосов
/ 15 января 2020

С man ruby:

-x [каталог]
Сообщает Ruby, что скрипт встроен в сообщение. Ведущий мусор будет отбрасываться до первой строки, которая начинается с #! и содержит строку ruby
. Будут применены все значимые переключатели в этой строке. Конец сценария должен быть указан с помощью EOF ^ D (control-D ^ Z (control-Z) или зарезервированного слова __END__ Если указано имя каталога, Ruby переключится на этот каталог перед выполнением сценария.

Это означает, что ridk.cmd имеет встроенный код ruby.

directory является необязательным, как указано в квадратных скобках вокруг имени и описания. Если предусмотрено , должен быть сразу после -x без пробела, что фактически позволяет ему быть необязательным аргументом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...