- - PR -
dirnameコマンドとbasenameコマンド
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-07-03 18:09
こんにちは、トーヤです。
UNIXって、dirnameコマンドとbasenameコマンドがありますよね? Linuxでは未確認ですが、HP-UXとかだと、man dirnameで実行すると basenameコマンドのmanが参照できるのですが、ひょっとして この2つのコマンドって同じものなのですか? あと、`dirname $0`コマンド結果を変数に入れてスクリプトで 使っているのですが、このコマンドは具体的にどういった処理を 行ってるのでしょうか? コマンドラインから実行すると、出力結果は「.」だけでした。 よろしくお願いしますー!! |
|
投稿日時: 2003-07-04 09:42
トーヤさんこんにちわ
>UNIXって、dirnameコマンドとbasenameコマンドがありますよね? >Linuxでは未確認ですが、HP-UXとかだと、man dirnameで実行すると >basenameコマンドのmanが参照できるのですが、ひょっとして >この2つのコマンドって同じものなのですか? Red Hat 9では別物でした。 manをしてもそれぞれ別のマニュアルが表示されました。 同じ物かどうかは # ls -l `which dirname` # ls -l `which basename` で2つのコマンドがシンボリックリンクになっているか 確認してみるのがいいかと思います。 >あと、`dirname $0`コマンド結果を変数に入れてスクリプトで >使っているのですが、このコマンドは具体的にどういった処理を >行ってるのでしょうか? 私はスクリプトを追っかけていくのはあまり得意な方ではないですが $0は与えられた1番目の引数を意味しますので その引数のディレクトリ名を取り出している そして、それをきっと別のコマンドに渡しているんですよね? どのファイルのどの辺です。ってことを言ってしまえば もっと説明しやすいかもです。 >コマンドラインから実行すると、出力結果は「.」だけでした。 # echo $0 して$0に入ってる変数を見てみると 「bash」と表示されました。 つまり # dirname bash とやっているわけで、ディレクトリ部分が存在しないので 「.」と表示されたんですね。 |
1