68user's page 掲示板

Prev< No. 1621〜1626> Next  [最新発言に戻る] [過去ログ一覧]
No. 1621 # 68user 2001/01/20 (土) 05:01:36
>>1613 ゆっきー
> もし、入力した数値を計算し、結果を出力するような
> サンプルを置いてあるページについて何か思い当たる
> 点があれば教えていただけないでしょうか。
たとえばどのような計算をしたいのですか?

テキストボックス1とテキストボックス2に数字を入力させ、
ボタンを押すと、2値の和を表示する CGI プログラムは
書けますか?

>>1599 キチキチ
そんな腐れサーバとは早く縁を切りましょう :-)

> TELNETが禁止のサーバで、CRONTABみたいに定期的に
> パールスクリプト実行できるテクニックってありますか?
crontab 自体の使用が禁止されておらず、なおかつサーバ管理者を
敵にまわしてよいなら、CGI プログラムから crontab を設定する
とか、~/.forward に crontab を設定するように仕込んでおいて
メールを投げるなどの方法はあります。でも、お薦めしません。

あと、外部から定期的に指定の URL にアクセスしてくれる
サービスがありますので、それを使って CGI プログラムを
一定時間ごとにアクセスさせるってのもあります。
確か webtimer って言ったかな。検索して探してみてください。

No. 1622 # 68user 2001/01/20 (土) 05:30:50
>>1610 rosegarden
補足などしてみたり。間違ってたらご指摘お願いします。

    % cat
と実行して、C-p,C-m,C-v,C-m とタイプしてみて下さい。C-p は ^P と
出力されるでしょう。rosegarden さんが書かれた通り、C-m は改行に
なります。C-v C-m は ^M と表示されます。

この表示は、キー入力を受け取った端末ドライバが行っています。その
端末ドライバのキー割り当てを変えるのが stty コマンドなわけです。
改行 (この場合 C-m と等価) を打たない限りは、cat に文字列は
渡りません。1行のデータが確定して初めて、端末ドライバが cat に
データを送ります。

次に tcsh か bash を起動して、そこで C-p,C-m,C-v,C-m をタイプして
下さい。C-m や C-v C-m はさきほどと同じですが (tcsh ^M でなくて
^J となりますが、両方改行コードなのでこれは置いといて) 、C-p の
挙動が違いますね。1つヒストリをさかのぼります。つまり、1行を
入力していなくても、1文字打った瞬間に tcsh や bash にデータが
渡っていることになります。

これは tcsh や bash が端末ドライバを経由せずに、直接キー入力を
取得しているからです。これを canonical モードといいます。端末の中で
動く mule や emacs や vi もcanonical モードになっているわけです。
これらは端末ドライバを経由していないので、stty の設定とは無関係です。
例えば tcsh のコマンドラインで C-v C-m で ^M となるのは、
    % stty erase ^H
しているからでなく、デフォルトで
    % bindkey ^V quoted-insert
という設定になっているからです (bindkey は tcsh の内部コマンド)。

一方、伝統的な sh は canonical モードでは動きません。(Linux だと
sh=bash だから例外)。つまり端末ドライバ経由でキー入力を拾う
わけで、この場合は stty を使って設定します。

> du や df コマンドの -h (human friedly) オプション
> というのはご存知でしょうか?
関係ないですが、FreeBSD 2.2.6-RELEASE では du -s が使えず
くやしい思いをしました。

使いこなせると幸せだと思うオプション。
    ls -lt、uniq -c、tail -f、du -s
# du -s は Solaris にはないかな。

No. 1623 # rosegarden 2001/01/20 (土) 07:09:17
>>1622 68user
> これは tcsh や bash が端末ドライバを経由せずに、直接キー入力を
> 取得しているからです。これを canonical モードといいます。端末の中で
> 動く mule や emacs や vi もcanonical モードになっているわけです。
> これらは端末ドライバを経由していないので、stty の設定とは無関係です。
あ、そうですね。前の
>>1610 rosegarden
を見ると、emacs の設定も stty でするように読めますね。そう思って読むと、
stty 経由で設定するものとソフトウェア自体が設定するものとがごっちゃに
なっていますね。「コマンドライン」というのは、最近の私の環境だと
tcsh での話になるから、stty うんぬんは、まちがいだなあ。

とにかく、補足というかご指摘ありがとうございました。

> ls -lt、uniq -c、tail -f、du -s

このなかでは、uniq -c は知らなかった。これ便利ですね。

No. 1624 # 403 2001/01/20 (土) 08:56:46
>>1622 68user
> これは tcsh や bash が端末ドライバを経由せずに、直接キー入力を
> 取得しているからです。これを canonical モードといいます。端末の中で
> 動く mule や emacs や vi もcanonical モードになっているわけです。
> これらは端末ドライバを経由していないので、stty の設定とは無関係です。
ttyドライバは経由してるけど、canonicalはほぼ素通しなモードなので、直接取ってるように見えてる。
コントロールコードは、sttyでの設定と同一のものを使用するプログラムが多い。
が正確でしょう。
canonicalモードとrawモードの違いを述べよ。

No. 1625 # Netboy [E-mail] 2001/01/20 (土) 14:41:01
>>1621 68user
>確か webtimer って言ったかな。検索して探してみてください。
それ,私のです(泣).

>>1599 キチキチ
WebTimerは

http://jp.usami.com/~robot01/
  
です.我が家の自宅サーバーからつつきます.
とりあえず'98夏から動いてます.
最近メンテしてませんけど,よかったらどうぞ...

No. 1626 # 68user 2001/01/20 (土) 22:11:49
>>1622 68user
う、canonical と 非 canonical が逆でした。canonical は1行単位、
非 canonical が素通しモードでした。

>>1624 403
> canonicalモードとrawモードの違いを述べよ。
ちと調べてみましたが、canonical, non-canonical と raw, cbreak,
cooked の関係がいまいち…。うーむ。

>>1610 rosegarden
> % stty erase ^H
あと、stty を実行するときには端末が割り当てられている必要が
あるので、~/.cshrc に
    stty erase ^H
と書いていると、rcp などを使ったときに (コピーはできますが)
stty がエラーとなります。なので
    if ( ${?TERM} ) then
        stty erase ^H
    endif
と、環境変数 TERM が設定されている (=端末が割り当てられている)
ときだけ stty が実行されるようにしましょう。telnet や rlogin
でログインしたときは stty が実行され、rcp のときは実行されません。

ここまで書いてふと思ったのですが、stty って ~/.login に書いとけば
こういうことを気にする必要はないのか?

>>1625 Netboy
>> 確か webtimer って言ったかな。検索して探してみてください。
> それ,私のです(泣).
失礼しました (^^; お肉さんのとこで見た記憶はあったのですが。

Prev< No. 1621〜1626> Next  [最新発言に戻る] [過去ログ一覧]