• ベストアンサー

教えてください

ranxの回答

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.4

a-kumaさんの回答で完璧だあ、と思ったのですが、補足を見ると、まだご不満のようですね。 シェルスクリプトに書かれたコマンド = ビルトインコマンド と思っていませんか? シェルはその種類により、様々な機能を持っていて、簡単なことならばシェルのプログラム の内部でやってしまいます。(シェルのプログラムと書いたのは、シェルスクリプトのこと ではありません。シェルスクリプトを読んで実行するプログラムのことです。シェルスクリプト は単なるテキストです。)これをビルトインコマンドと言います。とは言っても、全ての処理を シェルの内部で処理できるわけでもないので、シェルプログラムは、シェルスクリプトの記述に したがって、外部のコマンドを起動します。シェルスクリプトの中に書かれていたとしても、 これはあくまで外部のコマンドです。 で、testコマンドですが、これは私の想像ですが、やはりシェルスクリプトの中で使うことを 目的として作られたものだと思います。UNIXは、ある程度今でもそうですが、初期のものほど、 一つのプログラムに多くの機能を持たせるより、多くのプログラムの機能を組み合わせて使う ことを考えて作られているように思います。そんなことから、当初はビルトインコマンドでは なく、外部に独立して作られたのではないでしょうか。現在では、これをビルトイン機能で 行うシェルも多く紛らわしいですが、やはりa-kumaさんのおっしゃるように、区別する必要は ないと思います。

関連するQ&A

  • Visula Basic6.0からUNIXサーバーのシェルの起動について

    VB6.0からUNIX上のshellを起動したいのですが、良い方法を教えて下さい。 WindowsNT/2000では、以下の方法を考えていますが、Win98ではRSHコマンドが使用できないため困っています。 WindowsNT/2000 shell関数でPC上のバッチファイルを起動。 バッチファイルからRSHコマンドを使用しUNIXのshellを起動。

  • BATファイルでshellのreadのようなコマンドは無いのでしょうか?

    BATファイルでUNIXのshellのreadコマンドのような機能を探しています。 ヘルプ等で探してみたのですが見つかりません・・・・ 存在するのでしょうか??

  • UNIXには直接ファイル操作コマンドありますか?

    本当に困ってます(T_T) UNIXのShell Scriptでテキストファイルの一部(何行か)を削除したいです。リダイレクト機能とか使わないで、直接ファイルから削除することはできますか? UNIXって直接ファイル編集するコマンド聞いたことないですが、そういうコマンドありますか?

  • Linuxのコマンド「history」で実行日時を知りたい

    Linux(unix)のコマンド「history」で、これまでに実行したコマンドの実行日時を知りたいのですが、オプションを付ける事で可能でしょうか?

  • UNIXのシェル

    シェルに関して質問です。 0526とか0525のところは一日ごとにフォルダが作成されます。 unix\yasu\0526\hobby\test.txt unix\yasu\0526\hobby\test.txt unix\tomo\0525\hobby\test.txt unix\tomo\0525\hobby\test.txt ./check.sh MMDD 実行するときにMMDDのところに日付を入れてフォルダがあればコマンド1を実行するようにしたいです。 引数に指定した文字を判定するにはどうしたらいいのでしょうか? よろしくお願いします。 ----------------------------- #シェルの名前は「check.sh」です #! /bin/sh if [ $1 = "日付" ] ; then コマンド1 else コマンド2 fi -----------------------------

  • unixでのpingコマンド

    恐れ入ります。unixでのpingコマンドですが、 192.168.x.1から192.168.x.100まで範囲指定をしてpingを打つようなオプションはありませんでしょうか? 調べているのですが、いまいち理解できず、困っております。

  • findコマンドのオプションについて

    UNIXやLinuxの find コマンドの -noleaf オプションの意味を教えてください。 「manを見ただけではよく理解できませんでした・・・」 すみませんが、よろしくお願い致します。

  • phpのshell_exec関数の動作に関する質問です。

    phpのshell_exec関数の動作に関する質問です。 環境はFreeBSD7.1 php5.2.13です。 もともとperlスクリプトtest.cgiがあって、 /path/test.cgi filea fileb (以後これをコマンドラインという) というコマンドラインが正常に実行されることが確認済みです。 このコマンドラインが実行されるとfilebの内容が変化します。 次にphpスクリプトからコマンドラインを実行するために test.phpスクリプトの途中に、 shell_exec("/path/test.cgi $filea $fileb"); と書きました。 (test.cgiではperlライブラリを読み込んでいます。 phpには同等のライブラリがないためにやむを得ずこうしています。) ところがtest.phpを(ブラウザから)実行しても コマンドライン実行後に期待される$filebの変化がありません。 つまりコマンドラインが実行された形跡がないのです。 test.phpスクリプトの$filea, $filebが正しく変数展開されていることは確認済みです。 FireFoxブラウザから見るとtest.phpスクリプトは特にエラーもなく正常に実行されているように見えます。 質問 1 正常に実行できるコマンドラインをphpのshell_exec関数で実行できない理由としてどのようなことが考えられるでしょうか。

    • ベストアンサー
    • PHP
  • Linux、unix、シェルスクリプトの基礎知識、コマンドについて

    会社でteratermを使ってコマンドベースの仕事をする機会があるため、コマンドやシェルスクリプトについて理解したいと考えています。 そこで疑問がわいてきたため、何点か質問があります。 1)teratermでtelnetで接続してコマンドを打つときはunixのコマンドですか?linuxのコマンドですか? 2)unixとlinuxで簡単なコマンドレベルでの差は無いものと考えて大丈夫でしょうか? 3)勉強するならunix、linuxどっちがお勧めですか? (今のところ参考書として、独習linuxか独習unixを買って勉強しようと思っています。他にお勧めの参考書があれば教えてください。) 4)シェルスクリプトを家でも作成してみたいのですが、ubuntuをインストールして端末上で操作し、作成して試すことはできるのでしょうか? (お勧めの参考書があれば教えてください。) 長くなってしまいましたが、よろしくお願いします。

  • DOSコマンドのダブルクォーテーションの扱い

    DOSコマンドでダブルクォーテーションを検索し、 リダイレクションをすることが出来なくて困っています。 例えば findstr "\"!" a.txt は出来ますが findstr "\"!" a.txt >b.txt とするとリダイレクションが出来ません。 grepも同じようです。 またunixコマンドではシングルクオートは、「囲まれた中身をそのままの文字として利用」し、ダブルクオートは、「囲まれた中身に$HOME など $ で始まる文字列があれば、 それを環境変数、シェル変数といった、値に置き換えてから、利用する」という明確な違いがありますが、DOSコマンドでは明確な違いはあるのでしょうか? unixのshellをDOSコマンドに移植しています。 DOSコマンドの参考Webもあまり見つからなくて困っています。 もし参考になりそうなWeb等ありましたら教えてください。