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で動かすことができるのかもしれないけどわからない。
まじめんどうで困る。