10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyスクリプトをシェルスクリプトっぽく実行

Last updated at Posted at 2015-07-21

##Rubyをシェルスクリプトっぽく実行してみよう

動作環境:os x yosemite
ruby 2.0.0p481
1,rubyの場所を調べる
ターミナルでwhich rubyを実行。結果をメモ。
実行結果例:/usr/bin/ruby

2,スクリプトを書く
このとき1行目に#!/usr/bin/ruby(さっきメモったところ)を入れる

HelloWorld.rb
#!/usr/bin/ruby
puts ("Hello World")

3,実行権限をつける
chmod +x HelloWord.rb Ubuntuでやったときはchmod u+x HelloWorld.rbじゃないとエラーが出た

4,実行
./HelloWorld.rb

また、このように実行する場合拡張子の.rbをとってHelloWorldって名前でスクリプト書いて実行権限つけても問題ない

あと、rbenv とか使ってるとrubyの場所が少し変わるけど特に問題ない

###追記:

  • ruby自体のPATHを意識したくない場合は#!/usr/bin/env rubyと書くこともできるそうです。ただ、これだと動かない環境もあるようですね。

  • env を使わずにすむように、冒頭をシェルスクリプトとしてRuby に実行させる方法があるようです。

#!/bin/sh
exec ruby -S -x "$0" ${@+"$@"}
#!ruby

ここ以下はrubyとして実行される


また、[Ruby 2.0.0のリファレンスマニュアル](http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2frubycmd.html)だとこんな感じ

>```sh:
#!/bin/sh
exec ruby -S -x $0 "$@"
#! ruby
#ここ以下にrubyのスクリプト

私はシェルスクリプトに詳しくないので良くわからないが、詳しく知りたい人はリファレンスマニュアルの方に詳しく書いてあります。

10
11
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?