ひさしぶりに記事を書いた気分になってしまう時点でだめですね。
ちょっと新しいことを学んでいたら遅れました。
無事習得できたので、今回から二回にわたっては新しい関数では
なく、新しい作り方について学びましょう。
////term.ns////////////////////////////////
#import (*.ns);
var cmd;
Function main() {
puts(" Hello Terminal!!\n\n");
while(1) {
puts(" >");
cmd=gets(10);
switch(cmd) {
case "pwd":
pwd.main();
break;
case "exit":
break 2;
default:
puts("Can't find command\n");
break;
}
}
}
////pwd.ns//////////////////////////////////
Function main() {
puts("%GetCurrentDirectory()%\n");
}
////////////////////////////////////////////
なぜかPCで実行したらエラーが、、
なんか気がついたら言ってください。
とりあえず、CE上では正常に動いたので。
はい。
今回はスクリプト二つを、指定した名前通りに同じディレクトリに
作って、配置してください。
今回、何故二つスクリプトがあると思いますか?
それは、、スクリプトから別のスクリプトを読み込んで、実行する
ためです!!
こうすることで、やたらと長いスクリプトを作らなくても関数ごとに、
もしくは処理ごとにスクリプトを分散することができます。
今回はそれをターミナルで再現しています。
処理を簡単に説明すると、前と同じような方法で処理を記述した
上で、その中の「関数を別に用意する必要のある処理」をスクリプト
にまとめて読み込ませ、そしてそのスクリプトの中にあるmain()を
呼び出すようにだけ記述しておくということです。
では今度は具体的に呼び出す方法ですね。
スクリプトは、同じディレクトリにおいてあった場合は
#import (スクリプト名);
と、記述することでとりあえず読み込むことはできます。
気をつける点は、スクリプト名は""でくくらなくても、
文字列になるということです。
サンプルを見ればわかりますよね。
また、違うディレクトリにスクリプトがおいてある場合は、、
次回やりましょう。
そして、今度は実行する方法です。
スクリプト名.関数名();
と、することで実行できます。引数と返り値も普通に使えます。
ここも注意が必要です!
pwd.ns.main();
のようにしてはいけません。.nsはつけないで、拡張子以前のみ
を記述して、
pwd.main();
と記述してください。
この二つを抑えて、もう一度スクリプトを見直してみてください。
先ほど話したように、pwdコマンドのところを
pwd.main()にすることによって簡単にしています。
cdコマンドのように、何行も記述しなきゃいけないようなときは
結構便利です。
それにコマンドの追加を簡単に行えるというメリットもあります。
結構重要ですよ。
次回やることを学ぶためにも。
次回学ぶことによって、スクリプトの追加がもっと簡単になります。
がんばって、とりあえず覚えてください。
ほかに今回説明すべき点はありませんね。
わからないことがあったら遠慮なくコメントしてくださいね。
では。
2 コメント:
ありがとうございます!
試して見ましたが、しっかりうごきました
疑問点は...varを置く意味が少し...
あとコマンド的にはlsコマンドあたりの作り方がまったくわかりません..
あれがあれば成功の確認もnスク内で確認できそうなものですが...
毎回どうもです。
varは僕が作ったのをコピーしたときに残った副産物ですw
気になさらないでください...
lsですか、、
僕もよくわからないんですよね。サンプル見ても。
いま奮闘してます。
とりあえず完成品はありますけど、いりますか?
説明の要望が出てきそうなので、サイトには貼り付けない方針で、スクリプトをメールさせていただければありがたいのですが。
アドレスのほう教えていただけませんか?
よろしかったらpinemukuro@zoho.comに送信お願いします。
コメントを投稿