Автозаполнение для команды ruby ​​в bash - PullRequest
1 голос
/ 17 декабря 2009

В оболочке Bash я хотел бы запустить каталог скриптов ruby ​​из любой точки мира. Добавление каталога в $ PATH этого не делает.

Я хочу набрать 'ruby', начать вводить первые буквы имени скрипта, а затем нажать клавишу табуляции для автозаполнения имени скрипта.

Например, я в / ~ / username / foo / bar и хочу запустить /~/ruby/test/script1.rb

~ / username / foo / bar $ ruby ​​scri

нажмите вкладку и

/ username / foo / bar $ ruby ​​script1.rb

* Появляется 1016 *. И тогда я смогу нажать enter и запустить скрипт, даже если я не в нужном каталоге.

Возможно ли это?

Ответы [ 5 ]

2 голосов
/ 17 декабря 2009

Если вы добавите это в верхнюю строку ваших скриптов. Используйте 'which ruby', чтобы узнать, где находится ваш переводчик, и используйте вместо этого путь.

#!/usr/local/bin/ruby -w

Затем измените их на исполняемые с помощью

chmod +x ruby_script.rb

Вы сможете их рубить, как и любую обычную программу, например (хотя вы можете потерять расширение .rb)

ruby_script.rb
2 голосов
/ 17 декабря 2009

Посмотрите файл /etc/bash_completion и команду complete. Поиск в этих ключевых словах даст вам несколько уроков по настройке автозаполнения bash.

Также убедитесь, что в ваших скриптах на ruby ​​есть правильная строка "she-bang".

1 голос
/ 20 октября 2011

Я нашел , этот учебник был особенно полезен. В основном вы хотите попасть на эту строку:

COMPREPLY=( $(compgen -W "${files}" -- ${cur}) )

Тогда главное, что вам нужно выяснить, как это сделать, это получить список файлов в текущих dir + файлах в вашем / ~ / ruby ​​/ test dir и назначить его на files.

Хотя это немного сложнее, потому что вы должны принять во внимание путь.

1 голос
/ 17 декабря 2009

Насколько я знаю, единственное завершение bash, которое вы можете сделать, это запустить сам скрипт. Если вы захотите сделать скрипт исполняемым и поместить его в свой путь, вы сможете просто запустить скрипт, набрав

my_scri

и затем нажмите вкладку. Это, наверное, самый простой способ. На какой ОС вы работаете? Мы могли бы помочь немного больше.

0 голосов
/ 17 декабря 2009

Почему бы вам просто не сделать исполняемый файл ruby ​​и включить переводчик в первой строке, как в:

$cat >un.rb<<END
> #!/usr/bin/ruby
> puts "Hi"
> END
$chmod +x un.rb 
$export PATH=$PATH:/Users/oscarreyes
$cd /tmp 
$un.rb 
Hi

Я использовал табуляцию для автозаполнения моей команды un.rb

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