みんなのちからになりたい

コピペでブログラムつくっていきたい

bundle exec rspecって打つのがめんどいので

shellを書こうと思ってtest.shというのを作って

#!/bin/sh
bundle exec rspec -f d

書いてみて実行したら

$ test.sh
-bash: test.sh: command not found

って返ってきたのでなにごとかと思ってぐぐったら
http://d.hatena.ne.jp/zariganitosh/20100206/1265436726
要は実行権限を設定しないとダメということだった。
chmodの説明はこれ。めちゃくちゃわかりやすい。
http://technique.sonots.com/index.php?UNIX%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%2F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%AE%A1%E7%90%86%2Fchmod
windowsだとバッチファイルを作れば善きに計らって実行してくれたけどそうではないらしい。
というわけで一応ownerだけ実行できるように

$ chmod u+x test.sh

とやってtest.shを実行してみるとまたしてもまったく同じ。
なにがだめなのかまったくわからないので、bashから動かしてみると

$ bash test.sh
〜
Finished in 2.98 seconds
5 examples, 0 failures

ちゃんと動く。
まじなんでですか...と思ってぐぐると
http://www.oklab.org/program/sh.html

chmodコマンドはCHange MODeの略がコマンドになったものです。これでファイルに権限を追加したり削除したりします。次に、hello.shファイルを./を付けて実行します。これは現在のディレクトリにあるhello.shを実行するという意味です。./をつけないと実行できません。

./をつけないと実行できません。
いやカレントにいるんだから./とか付けなくてもいいだろ...って思ったけどやってみたら

$ ./test.sh
〜
Finished in 2.98 seconds
5 examples, 0 failures

動く。./を消すと動かない。
たった2文字だけどめんどくさい。どうにかすればtest.shで動かすことができるのかもしれないけどわからない。
まじめんどうで困る。