0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シェルスクリプトをRubyで作る

Posted at

環境

Ubuntu20.4
Ruby2.6

はじめに

「Linux環境でシェルスクリプトを書くことになったのだが、bashの文法はあまり詳しくないし、普段書きなれたRubyを使ってサクッと作れないだろうか・・・。」

「Rubyなら色々なgemが用意されているし、複雑な処理でもシンプルに記述できるんだけどな
・・・。」

なんて思ったときは、Rubyを使ってシェルスクリプトを作ることができるのです。シェルスクリプトにしなくても、Rubyプログラムとして、ruby hoge.rbで実行してもいいのだが、シェルスクリプトにすると、.hoge.shで実行することができます。だけの話と言えば、だけの話ではありますが。

中身はRubyの文法のままで、あたかも、bashで動いているようなスクリプトを作ることができます。また、Rubyで作っても、systemやIO.popenを使うことで、Linuxのコマンドを埋め込むこともできます。

内容

Rubyで記述する場合は、シバンにはbashを指定するのではなくRubyを指定します。そして、スクリプトファイルの拡張子はshにします。rbでも動くようではありますが。

hoge.sh
#! /usr/bin/env bash		# bash用
#! /usr/bin/env ruby		# Ruby用

このようにして実行します。実行権限はつけてください。

hoge.sh
$./hoge.sh

bashで動くわけではないので、Rubyで書いたスクリプトファイルをこのようにして実行することはできません。

hoge.sh
$. hoge.sh
$source hoge.sh
$bash hoge.sh

bashで動かす場合の書き方です。

hoge.sh
#! /usr/bin/env bash
echo "OK"

同じことをRubyで書くとこのようになります。

hoge.sh
#! /usr/bin/env ruby
puts "OK"

Rubyで記述しても、スクリプトファイルの実行が、bashと同じコマンドで実行できるようになります。

0
0
2

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?