髪の毛一本ほど理解が進んだシェルスクリプト

『たった髪の毛一本かい!!』と言ってもこれは我ながら大きな誤解だった。今の今まで、いやついさっきまで /usr/bin を /users/bin だとばかり思っておりました。つまりは users のディレクトリ下に不可視ファイルの bin というディレクトリでもあるのかと思っていた。 それをコメントにて【chappueさん】に教えていただき目が覚めました。

違ったんですね。確かに不可視なんだけど、HDD直下(こういうのルートって言うのかな?)に usr/bin というディレクトリがあったんですね。そんでもってそのディレクトリ内には例の rsync というプログラムも入っている。

そして当然そのディレクトリには最初からパスが通っている。だからその rsync なんかを使う時にはパスを通す必要がないけど、昨日の自分で作ったシェルスクリプトを使う場合にはパスを通す必要があると。だからパスを通すというのはシェルが見つけることができるように道案内を記してやるということなんだ。

ということはあれですかね、その usr/bin のディレクトリに自分で作ったシェルスクリプトを保存すればパスを通す必要が無いのかな?と、また新たな疑問が出てきたけど、まずは頑なな誤解が解決できてめちゃくちゃ気持ちがいいです。

あ、それからシェルスクリプトの.sh の拡張子を command に変更してそのファイルを開くアプリをターミナルにすれば、そのままダブルクリックでターミナルがそれを実行してくれるというやつ(前記事:シェルスクリプトって何?から始めるシェルスクリプト 参照)、コメント欄で【し〜ん】さんに教えていただきました。ぼくの記述したファイルに実行(アクセス)権が無かったのが原因でした。

ぼくのような路頭に迷っている方、実行方法はコメント欄を参照していただければ良いのですが、ターミナルを使って $chmod a+x openmemo.command などとすると openmemo.command というファイルに簡単に実行(アクセス)権が付加されました。もちろん openmemo.command などのファイルパスは間違わないように。実はぼくぼく、コメント欄そのままに打ってしまってその後気付きました。

トラックバック

このエントリーのトラックバックURL:
http://www.sumainobaiten.com/blog/mt-tb.cgi/526

コメント (2)

chappue:

あぁ、なるほど。
不可視フォルダになっているから、どんなフォルダ構成になっているのかわからなかったんですね。
Finderからはそのままでは見えませんが、ターミナルからなら
$ls /
でルート以下にどんなフォルダがいるのか見れますよ。
ちなみにFinderの方が使いやすいのなら
$open /usr
とすると/usrフォルダ内をFinderから見る事が出来ます。

ただ、不可視になっているフォルダは、簡単に操作してほしくないからそうなっているので、わからないうちは無闇にいじらない方が無難です。
どんなファイルがあるのか見たりするくらいなら問題ないですけどね。

まぁ作法として、自分の作ったファイルは適当なフォルダ(例:~/bin)にパスを通してそこに追加したりするか、実行したいファイルをフルパス(もしくは相対パス)で指定するのが正しいと思います。

keizo:

>chappueさん
そうなんです。こんな単純なことに気付くのに時間掛かり過ぎです。でもコメントいただけるおかげで、これでも理解が進んでいると自分で納得しています。

なるほど、$open というのはファインダーにも適応できるんですね。考えてみればそうですね。ぼくは Quicksilver を使ったり、Jedit と不可視ファイルを見ていました。

毎度毎度ありがとうございます。

コメントを投稿

アーカイブ

最近のトラックバック

Powered by
Movable Type 3.34