68user's page 掲示板

Prev< No. 1191〜1207> Next  [最新発言に戻る] [過去ログ一覧]
No. 1191 # skel.103M [E-mail] 2000/09/25 (月) 04:36:17
どうも、skel.103Mです。
Bourne SHELLに関するアドバイス、どうもありがとうございました。>68userさん・Yuukiさん

さっそく、
    Bourne Shell 自習テキスト
    http://www.tsden.org/takamiti/shText/index.html
を見てみました。なかなかいいですね、このページ。ブックマークにも
登録しときましたし。このページを見ながら勉強していこうと思います。

> あと、UNIX USER 10月号 (最新号) に 20 ページ程度ですが、
> シェルスクリプト講座が載ってます。結構勉強になると思います。
私も買って少し読んでみました。いわゆるハンドブックとしてはちょっと
不適だと思いました。(←個人的な意見なので気にしないで下さい)ひと
通り文法を知った後で実践として使おうと考えています。

> ただ、sh スクリプトの決定版、というような本は知らないです。
>  http://www.oreilly.co.jp/BOOK/bash2/contents.htm
> ってのがありますが、読んだことはないです。
このWebページによると bash に関するもののようですね。
明日(っていうか2時間後)秋葉原へ行くので、そのときに見てみよう
と思います。

> # 結局 bash と sh は別物だし…。
そうなんですよね。例の秀和システムの「bash Manual & Reference」でも
似たようなことを書いてました。もちろんスタイルは似ているんです
けれど、やはり違いがあるらしいです。。。

それでは。

No. 1192 # やす [E-mail] 2000/09/25 (月) 10:22:02
こんにちは。

68userさん、Ksh変数のご回答ありがとうございました。
しかし、私はまだ、初心者なので、ファイル経由で情報を渡すということがよく分かりません。       ^^^^^^^^^^^^^^^^^^^^^^
もう少し詳しく教えて頂けないでしょうか。
よろしくお願い致します。

No. 1193 # ノヴァ 2000/09/25 (月) 19:22:43
こんばんは。
ここには初めててきました。

質問があるのですが、Cシェルで、
サーバー日付より2日前のファイルを削除するとかっていう
ことはできるのでしょうか?

教えてください。
お願いします。

No. 1194 # skel.103M [E-mail] 2000/09/26 (火) 00:35:51
@ノヴァさん
> 質問があるのですが、Cシェルで、
> サーバー日付より2日前のファイルを削除するとかっていう
> ことはできるのでしょうか?
使っているシェルにかかわらず可能です。
findというコマンドを使えばいいです。「UNIXの部屋」からfindの概要
や使い方を見たあと、詳細を「man find」で調べればいいと思います。

ではでは。

No. 1195 # 68user 2000/09/26 (火) 01:44:58
@ノヴァさん
> ファイル経由で情報を渡すということがよく分かりません
その前に
> script1 から script2 を呼んでいるのではなく、あるプロセスから
> script1 を呼び、script1 の終了後に script2 を呼んでませんか?
に対する回答はどうなっているのでしょうか?

引数で渡すとか、環境変数で渡すとか、ファイル経由で
渡すとか、パイプで渡すとか、やり方はいろいろありますが、
どういう呼び出し方をしていて、どれだけの量のどういう内容の
データを script2 に渡したいかがわからないとなんとも言えません。

No. 1196 # 68user 2000/09/26 (火) 09:24:14
> @ノヴァさん
じゃなくて、やすさんでした。

ところで、make world 中に 家の FreeBSD を
ぐっちゃんぐっちゃんに壊してしまったので、もし週末
までに復旧できれば IRC に参加させていただきます。
# が、なかなかうまくいかず…。

No. 1197 # ノヴァ 2000/09/26 (火) 16:05:56
教えていただきありがとうございました。
さっそく、色々やってみます。

No. 1198 # もりや 2000/09/26 (火) 19:17:24
はじめまして、もりやと申します
実は今、シェルスクリプト(でいいんですかね?DOSでいうBATファイルの
ことです)でやろうとしていることがあるのですが、やり方が今ひとつ分
かりません。ファイルの複製を作るのですが、複製されるファイルの名前
には、別のテキストファイルのレコードの先頭の4バイトが付加され、そ
のテキストファイルは何レコードあるか分かりません。レコードの数だけ
複製を作ります。awkなど使えばよさそうに思って本を読んだりいろいろ試
しましたが、うまくいきません。教えていただければ幸いです。
OSは、HP-UXでバージョンの見方がわからないのですが、ここ2、3年のも
のではあると思います。

No. 1199 # 2000/09/27 (水) 01:03:12
はじめまして。
MXレコードを調べたいと思っているんですがモジュールが使える状況にありません。Net::DNSなどのモジュールを使わずにMXレコードを引く方法があればヒントだけでも教えていただけるとうれしいです。

よろしくお願いします。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1200 # 68user 2000/09/27 (水) 02:49:07
Hmm... I have recovery FreeBSD. But canna server doesn't
accept a connection. Something is wrong. sign....

@moriya
I can't understand what you want to say. Please show
examples of the file and the record.

To know OS version, type `uname -a'.

@Q
> get MX record without Net::DNS
There is a sample script to get MX with nslookup.
http://X68000.startshop.co.jp/~68user/cgi-bin/view-script.cgi/expn.cgi

Another way, connect DNS server (port 53/udp), talk DNS protocol.

# I hate multipost. You have to reply in 2ch, don't you?

No. 1201 # もりや 2000/09/27 (水) 09:44:03
説明不足で申し訳ありませんでした。
org.datというファイルがあるとします
あと、tencd.txtというテキストファイルがあり、その中身は
000420000101
002320001010
034320001020 とします
この場合、
org.datをコピーしてorg004.dat、org0023.dat、org0343.dat
という3つの複製ファイルを作成したいのです。
tencd.txtは何レコードあるかは不定です。

因みにHP-UXのバージョンはB.10.20でした。
よろしくお願いします

No. 1202 # Q 2000/09/27 (水) 09:51:16
What do you mean? hahaha...

No. 1203 # 68user 2000/09/27 (水) 10:25:21
sh なら
    exec < tencd.txt
    while read line
    do
        set -- $line
        num=`echo $line | sed 's/^\(....\).*/\1/'`
        cp org.dat org$num.dat
    done
csh なら
    foreach line (`cat tencd.txt`)
        set num=`echo $line | cut -c-4`
        cp org.dat org$num.dat
    end
てな感じでしょうか。

# シェルスクリプトと言っても、シェルにはいろいろ種類が
# あるので、sh か csh かそれ以外かを明記してください。

先頭4バイト取得には、sed でも cut でも awk でも
お好きな方法をどうぞ。

もちろん全体を awk スクリプトで書くこともできます。
でもまぁ、perl を覚えた方がよいとは思いますね。

No. 1204 # ふくし [E-mail] 2000/09/29 (金) 02:38:39
すいません、Perl一般の話ですいませんが、

サブルーチン リファレンスを使うとコールバック関数が作れる、
という場合の、コールバック関数ってどんなもんなんでしょうか?
どんなときにどう使うと便利なんでしょうか?

リファレンスの勉強をしていて、そこだけピンと来る例題のある章が
なくて困っています。
御無理のない範囲で教えてくださいー。

No. 1205 # 68user 2000/09/29 (金) 03:12:26
Perl/Tk で何かアクションがあったときの動作を記述する関数
    sub pushed {
        print "ボタンが押されました\n";
    }
    $top->Button(
        -text => 'Push me',
        -command => \&pushed,
    )->pack(-side => 'left');
とか、シグナルハンドラ、たとえば SIGALRM による
タイムアウトが起こったときの動作を記述する関数
    sub signal_handler {
        print "1秒待ちましたが、入力がありませんでした\n";
        alarm(1);
    }
    $SIG{ALRM}=\&signal_handler;
    alarm(1);
    $buf = <STDIN>;
などをコールバック関数といいます。

後者は、より実践的に書けば
    http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=889
てな感じです。

なお、関数へのリファレンスを使わず、$SIG{ALRM}=sub {...} などと
無名関数を使ってコールバックを設定することもできます。

No. 1206 # ふくし [E-mail] 2000/09/29 (金) 03:43:11
ありがとうございます。このふたつの例はわかりました。
他に、ユーザープログラムが呼び出すサブルーチンを
「コールバック」と呼ぶことはないんでしょうか。
「コールバック」という言葉じたいの定義が本によってあやふやな気がして、、。
たびたび申し訳ありません、、。

No. 1207 # 68user 2000/09/29 (金) 09:39:23
> 「コールバック」という言葉じたいの
> 定義が本によってあやふやな気がして、、。
その本の記述例を見せていただけますか?

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