読者です 読者をやめる 読者になる 読者になる

ブログの名前なんて適当で良いのでは

説明を求めるな、記事を読め

本物のツールのようにTerminalで名前だけを打てば実行するようにしてほしかったので・・・

misc

なんとなくツールの使い方を勉強しているときに、なぜプログラムがUNIXでいう./みたいなやつや、ruby hoge.rb,python foo.pyのように拡張子+実行がなく動くのか不思議に思ったので調べてみた。

RubyPythonなどについて

 どうやら、シバン(Shebang)という存在がミソのようだ。このシバンとは、ネット上でサンプルコードを見てるとよく載っていたがとりわけ意味を知ろうとする機会はなかった。シバンとはこんなやつである(一例)#!/bin/shこれがあると、指定したインタプリンタで実行してくれるようになるらしい。つまりruby hoge.rbではなくhoge.rbとして実行できるというわけだ。

 そしてもう一つ必要なのばパスを通すことである。こちらは割と一般的な内容なのでさほど目新しくはないが、bash使いならば、.bashrcなどの設定ファイルにPATH="$PATH":[パス]と書き込んでおくことで、いちいちファイルがあるディレクトリまでcdを使って移動する必要がないのだ。

 この2点を理解したうえで、以下のような作業をした。

mkdir ~/Dropbox/all/myapp

.bashrcに、PATH="$PATH":~/Dropbox/all/myappを追加 

cd ~/Dropbox/all/myapp

emacs alp.rb

gistf80263dbca9129259250

mv alp.rb alp

そうするとこんな感じでいかにもツールみたくプログラム名だけで実行できました!

f:id:encry1024:20150819012446p:plain

ちなみにこのプログラムをなぜ作ったかというとシーザー暗号解読のときにぱっと見でずらしたアルファベットが見たかったから作りました(((