- ベストアンサー
教えてください
UNIXのtestコマンド([コマンド、shellに組み込まれたものではなく、独立なコマンド)の用法(オプションによる差)って何でしょうか?教えてください。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> これって、shellに組み込まれてるときじゃないんですか? > 独立なコマンドっていうのがよくわからないんです。 質問に「shellに組み込まれたものではなく、独立なコマンド」とあったので、 シェルにビルトインされたコマンドというものを理解しているのだと思ってました。 chamax さんが「shellに組み込まれてるとき」と表現しているのは、シェルスクリプトで 使うとき、ということですね? ビルトインコマンドについては No.4 の ranx さんの 回答以上に書く事は無いです。 質問の趣旨が「コマンドプロンプトから test コマンドを使うことがあるか?」と いうことであれば、まず、無いと答えておきます。 test コマンドに出来ることは、ファイルの存在や属性に対するチェックかシェル変数の 内容の比較だけなので、ls コマンドと echo コマンドがあれば用が足りてしまいます。 標準出力への応答が無いので、ls や echo と比べるとコマンドプロンプトから使うには 使いづらすぎます。 > ほんとごめんなさい。 質問サイトなんですから、質問したり補足を要求するのに申し訳なく思う必要はないです :-) 回答が的を射てないのであれば、何度でも補足をどうぞ。 回答する自信が無くなれば、そのときに撤退します。 # ちょっと、自信無くなってきた (^^;
その他の回答 (4)
- ranx
- ベストアンサー率24% (357/1463)
a-kumaさんの回答で完璧だあ、と思ったのですが、補足を見ると、まだご不満のようですね。 シェルスクリプトに書かれたコマンド = ビルトインコマンド と思っていませんか? シェルはその種類により、様々な機能を持っていて、簡単なことならばシェルのプログラム の内部でやってしまいます。(シェルのプログラムと書いたのは、シェルスクリプトのこと ではありません。シェルスクリプトを読んで実行するプログラムのことです。シェルスクリプト は単なるテキストです。)これをビルトインコマンドと言います。とは言っても、全ての処理を シェルの内部で処理できるわけでもないので、シェルプログラムは、シェルスクリプトの記述に したがって、外部のコマンドを起動します。シェルスクリプトの中に書かれていたとしても、 これはあくまで外部のコマンドです。 で、testコマンドですが、これは私の想像ですが、やはりシェルスクリプトの中で使うことを 目的として作られたものだと思います。UNIXは、ある程度今でもそうですが、初期のものほど、 一つのプログラムに多くの機能を持たせるより、多くのプログラムの機能を組み合わせて使う ことを考えて作られているように思います。そんなことから、当初はビルトインコマンドでは なく、外部に独立して作られたのではないでしょうか。現在では、これをビルトイン機能で 行うシェルも多く紛らわしいですが、やはりa-kumaさんのおっしゃるように、区別する必要は ないと思います。
- a-kuma
- ベストアンサー率50% (1122/2211)
> testコマンドの使い方を教えてください。 [ と全く同じですよ。例えば、sh 系だと if test -f xxx.dat then cat xxx.dat fi というふうに。後、あまり使う場面はありませんが、終了状態だけがあれば良い、という 場合には test -f xxx.dat stat=$? とか。でも、この場合でも [ は、全く等価に利用できて、 [ -f xxx.dat stat=$? でも全く同じです。 [ コマンドは、if や while の条件節に書くと、プログラム言語っぽくなって ちょっと読みやすくなるだけで、test と全く同じです。
補足
回答ありがとうございます。 たびたびすみません。 これって、shellに組み込まれてるときじゃないんですか? 独立なコマンドっていうのがよくわからないんです。 ほんとごめんなさい。
- Spur
- ベストアンサー率25% (453/1783)
UNIXでも色々あるので、どのUNIXのどのバージョンですか? No.1の方の言うように、私だったら「man」をまずは読んでみますよ。 それでも分からなければ、OSのマニュアルを開いたり、インターネットで検索してみます。 No.1の方の教えていただいたサイトの説明で充分かと思います。 その補足でさらに使い方を聞かれている状況がわかりません。
- a-kuma
- ベストアンサー率50% (1122/2211)
なんか、かっこが多くて分かり難いですが、test コマンドのオプションについて 知りたいんですか? -f file だと、file が通常ファイルとして存在するなら真を返す、とか。 であれば、man を読むのが一番の近道です。参考URLには GNU の test の man ページの URL を紹介しておきます。 また、test がシェルのビルドインかどうかはあまり関係がありません。基本的には 同じ物です。 OS によっては、実行ファイルの test がなかったり、昔の OS だとシェルのビルドイン になってなかったり、[ が、ビルドインではなくシンボリックリンクだったり、いろいろ あります。
補足
testコマンドの使い方を教えてください。
お礼
ありがとうございました