🖥
Rubyで独自コマンドを作ってみよう ( コマンドはバイナリじゃなきゃ駄目って誰が決めたんだ? )
なんとなく無意識に「コマンドというとバイナリ」というイメージがあったが、自分の環境で実行できるものなら、スクリプトでもコマンドを作れる。
-
$PATH
のディレクトリの中にスクリプトを置く - Shebang を書く
- 実行権限を付ける
これだけでOK。
例
コマンド引数を表示するだけのRubyスクリプト。
/usr/local/bin/ruby-echo
#!/usr/bin/env ruby
ARGV.each do |argv|
puts argv
end
実行権限を付与
$ chmod +x /usr/local/bin/ruby-echo
コマンド実行
動くでしょ。
$ ruby-echo Are you happy hacking
Are
you
happy
hacking
Ruby gem
ところで Ruby gem をインストールすると一緒にコマンドも入るタイプのものがあるが、これもRubyスクリプトで書かれているものがあったりする。
Ruby — 自作 gem の実行コマンドを作る手順 - Qiita
Ruby on Rails
何を隠そう Ruby on Rails で bin
に入っているコマンド群も Ruby スクリプトだったりする。
bin のコマンド=バイナリでしょと思い込んで、途中まで中身を読んだことさえなかったので、rubyスクリプトだと知った時には驚いた。
#!/usr/bin/env ruby
begin
load File.expand_path('../spring', __FILE__)
rescue LoadError => e
raise unless e.message.include?('spring')
end
APP_PATH = File.expand_path('../config/application', __dir__)
require_relative '../config/boot'
require 'rails/commands'
( Rails 5.2.1
)
環境
- ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
- Mac OS X High Sierra
関連
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2018-08-12
Discussion