68user's page 掲示板

Prev< No. 3451〜3485> Next  [最新発言に戻る] [過去ログ一覧]
No. 3451 # perler 2003/12/06 (土) 06:03:53
質問ではないんで、邪魔だったら消してくださいね。

過去ログを時間が許すままに読んじゃいました。
とってもおもしろかったです^^
まだまだいっぱい残っているので読破しようとおもいます。

言語はたくさん覚えたけど、UNIXには触ったことがないというある意味
希少なプログラマーなのでちょっとわからないこともあるんですけど、
予想するのが楽しいです。

最近のログをみていると応援の書き込みが少なかったので「管理がんばってください」の意味をこめてかきこませていただきました。
お目汚し失礼いたしました。

No. 3452 # Mule 2003/12/06 (土) 12:05:16
大変、参考になりました。

私がproxyのチェックを行う際には、hostが存在するかどうかの他に、以下のような環境変数を配列に入れて、foreach文や正規表現と組み合わせてチェックしています。

@proxy = ("HTTP_CLIENT_IP",
"HTTP_VIA",
"HTTP_CACHE_INFO",
"HTTP_CACHE_CONTROL",
"HTTP_FORWARDED",
"HTTP_X_FORWARDED_FOR","HTTP_SP_HOST",
"HTTP_TE","HTTP_XONNECTION","HTTP_PROXY_CONNECTION",
"HTTP_XROXY_CONNECTION","HTTP_X_LOCKING",
"HTTP_PRAGMA","HTTP_IF_MODIFIED_SINCE","HTTP_PC_REMOTE_ADDR");

この他に、
$ENV{'HTTP_CONNECTION'}を調べ、値がkeep-alive以外であればproxyと...
しかしこの方法では、精度の高いproxyの判定は、厳しいのではないか...というのが現実でした。

最初から言えばよかったのかも知れませんが...というか、上手く説明できなったのですが、
私がやりたかったことは、結局のところ、
imgタグでしかCGIを起動できない環境で、3 ができるかどうかでした。
コードを直接置ける環境での、3のコードは書いたことがありますので、これをイメージをトリガーにした方法で実装できるかどうかが問題でした。
(telnetの自動起動は、いくらでも未然に防げるものの...)

これまでいろいろご教授いただきまして、ありがとうございました。
また書き込みにくるかもしれませんが、暫くは教えていただいた情報を元に試行錯誤してみます。

それでは、よい休日を。

No. 3453 # あかつき 2003/12/09 (火) 15:03:15
みなさん こんにちは。

すごく簡単な質問だと思うのですが、
過去ログを見てもわからなかったため質問いたします。


UNIXコマンドの
compress a 1>/dev/null 2>&1
というコマンドについて。
compress a は、aファイルをcompress形式で圧縮するということはわかるのですが、
1>/dev/null 2>&1 は、どういう処理をしているのかわかりません。

よろしくお願いします。

No. 3454 # 68user 2003/12/09 (火) 15:47:43
>>3451 perler
ありがとうございます。それなりにがんばります :-)

>>3452 Mule
どうもお互い無駄な時間を浪費したように感じます。掲示板で
円滑なコミュニケーションを行うにあたり、質問時にどの程度の
情報を書くべきかについて ご一考ください。

>>3453 あかつき
compress の出力を全て捨てるということです。

http://x68000.startshop.co.jp/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8
http://x68000.startshop.co.jp/~68user/unix/pickup?%2Fdev%2Fnull

No. 3455 # あかつき 2003/12/10 (水) 16:48:23
ご回答ありがとうございました。

すでにまとめてありましたね。
こんどから、もっときちんと調べます。

No. 3456 # Hide 2003/12/10 (水) 17:45:44
大雑把な質問ですがResetConnect関数はどのように使うものなのですか?

No. 3457 # Hide 2003/12/10 (水) 17:47:30
挨拶が抜けましたが、初めて書き込みます。宜しくお願いいたします

No. 3458 # 68user 2003/12/10 (水) 18:00:47
>>3456 Hide
ResetConnect関数とは何ですか? (google でも 6件しか
引っかからないようですけれども)

No. 3459 # Hide 2003/12/10 (水) 18:51:59
一般的な関数でないのでしょうか?
RST送信するんですが・・

No. 3460 # 68user 2003/12/10 (水) 19:21:15
>>3459 Hide
わたしは初めて聞きました。

No. 3461 # だん 2003/12/11 (木) 00:30:36
Bシェルなのですが、tarで標準出力した結果をteeでファイルに出力し
なおかつ、tarの正常、異常を判断したいのですが、どうすればよい
のですか。
tar -cvf /dev/rmt/0m * 2>&1 | tee -a kekka.txt
と行ったのですが、標準出力及びkekka.txtに出力されたのですが、
$?の値が常に「0」の状態です。
標準出力、ファイルへの出力、$?の判定を行えるよにするにはどう
すればよいのですか。

No. 3462 # 68user 2003/12/11 (木) 09:36:55
>>3461 だん
ちゃんとステータスコードを取れるみたいですよ。
    % true | tee -a kekka.txt; echo $?
    0
    % false | tee -a kekka.txt; echo $?
    255

と思ったら、取れるのは csh・tcsh だけで sh (Solaris2.6)・bash は
無理みたいですね。

sh では
    % true && succeed=OK
    % echo $succeed
    % false || succeed=NG
    % echo $succeed

    % true && echo OK | tee -a kekka.txt
    % false || echo NG | tee -a kekka.txt
はいけるのに、
    % true && succeed=OK | tee -a kekka.txt
    % echo $succeed
    % false || succeed=NG | tee -a kekka.txt
    % echo $succeed
は $succeed に値が入らない。なんでだろう。
# サブシェルで実行されるから?

というわけで、Solaris2.6 の sh では
    % (true; echo $? >result) | tee -a kekka.txt
    % cat result
    % (false; echo $? >result) | tee -a kekka.txt
    % cat result
とステータスコードをファイルに保存するというかっこ悪い方法で
実現できました。より美しいやり方を募集中です。

No. 3463 # has 2003/12/12 (金) 01:36:49
>>3462 68user
俺には美しいやり方なんて無理ですが、ファイルじゃないだけなら
% ( true ; rc = $? ) | tee > kekka.txt
てのは?;-)

No. 3464 # has 2003/12/12 (金) 01:43:19
>>3463 has
ああ、すみません、3462をよく読んでませんでした。
68userの言う、&&とか||の処理詳細と(;)の違いは良く知らないんですが、
redhat 9.0のshでは3463のやり方ができたもので。
一応ご報告まで。

No. 3465 # 68user 2003/12/12 (金) 14:16:35
>>3463 has
それだと (〜) の部分はサブシェルが実行することになります。
サブシェルのシェル変数は確かに $rc=1 になるけれど、親の
シェルのシェル変数には影響しないので、結局 (〜) の外から
$rc を参照することはできないと思います。

ちなみに
    a && b は、a のステータスコードが 0 のときのみ b を実行
    a || b は、a のステータスコードが >0 のときのみ b を実行
です。

No. 3466 # capricio 2003/12/12 (金) 17:51:40
はじめまして.
httptalker をしばらく前から愛用しております.
非常に強力なツールで,Webから必要な情報を取得し目的にあわせて加工するなど
の用途でたいへん助かっているのですが,ひとつ質問をさせてください.

パスワードの認証の後でCookieを受け渡す形式のWebSite のデータをGETする
よい方法は,あるでしょうか?
httptalker のScript の中にCookie のやりとりをする機能を埋め込めばよさそう
ですが,わたしにはかなり難しいのです.

No. 3467 # 68user 2003/12/13 (土) 01:25:30
>>3466 capricio
えーっと、お使いのものはこれですか?
    http://x68000.startshop.co.jp/~68user/net/sample/http-client-2.pl
これは解説用のサンプルなので、実際の使用はおすすめしません。

じゃなくて
    http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/bin/httptalker
これをお使いなら、あまりに汚いコードだったので、さきほど少し
書きなおしました。ついでに追加ヘッダを指定できるようにしました。
        % ./httptalker -GET http://example.com/foo/bar -add-header 'Cookie: a=b'
で cookie を送信できます。
    http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/bin/httptalker?rev=1.3&content-type=text/plain
ここからどうぞ。

ただし、これの使用もおすすめしません。テストもしっかりしていないし、
機能面でも劣るからです。

というわけで、できるならば

    - wget (--load-cookies=ファイル名 で cookie を指定できる)
    - LWP モジュール付属 (libnet モジュール) の GET コマンド。
        オプション -H 'Cookie: a=b' で cookie 送信可能。
    - H_HTTP モジュール (http://www.studyinghttp.net/H_HTTP.html)

などを使った方がよいでしょう。

No. 3468 # zsh 2003/12/13 (土) 22:26:50
>>3462 68user
$ ( true | tee -a kekka.txt ) & ; wait $!

・・・・・やっぱり綺麗じゃないですね。

No. 3469 # zsh 2003/12/13 (土) 22:29:33
すみません徹夜明けでボケてました。
吊って来ます・・・

No. 3470 # くに 2003/12/15 (月) 10:32:40
>>3463 has

俺には美しいやり方なんて無理ですが、ファイルじゃないだけなら
% ( true ; rc = $? ) | tee > kekka.txt
てのは?;-)

私は、HP-UXを使用しているのですが、
% ( true ; rc = $? )
と実行するとシステムのシャットダウンになります。
他のOSも同じだと思うのですが、使用するときは注意した方が
良いと思います。

No. 3471 # 68user 2003/12/15 (月) 13:38:04
>>3470 くに
> % ( true ; rc = $? )
> と実行するとシステムのシャットダウンになります。
/etc に PATH が通っていたため /etc/rc が実行されたのではないかと
思います (引数は = と $?)。

sh の変数代入は = の前後に空白を入れてはいけないので、
rc = $? でなく、rc=$? ですね。

No. 3472 # hanzen 2003/12/15 (月) 16:02:20
lsコマンドについて質問です。
lsと実行するとファイル名やディレクトリ名が表示されますが、
ファイル名だけとかディレクトリ名だけとかを表示させたいの
ですが、できるのでしょうか。
manで調べてみたのですが該当するものもありません。
何かと組み合わせてて1行でできないものでしょうか。

No. 3473 # 68user 2003/12/15 (月) 16:06:28
>>3472 hanzen
> lsと実行するとファイル名やディレクトリ名が表示されますが、
> ファイル名だけとかディレクトリ名だけとかを表示させたいの
> ですが
以下のやりとりを参考にしてください。
>>3245 bebe
>>3246 68user

No. 3474 # has 2003/12/16 (火) 01:44:53
>>3465 68user
すみません、勘違いしてました。
3463 でできたと思っていたら、1行ずつ実行したときにセットした
rcの値が表示されただけでした。

>>3470 くに
それは予想していませんでした。
何にせよ紛らわしいのはよくないですね。
気をつけます。

というわけで何かよい方法はないか探してみましたが、
bashだとこういうのがあるみたいです。
(ただしシェルスクリプト内限定らしいですが)

$ echo $BASH_VERSION
2.05b.0(1)-release
$ cat pipetest.sh
#!/bin/bash
true | false | true | false
echo ${PIPESTATUS[@]}
$ ./pipetest.sh
0 1 0 1

あとはこんなん:-<

cp /dev/null kekka.txt ; tail -f kekka.txt &
pid=$! ; command > kekka.txt ; st=$? ; kill $pid
echo $st

No. 3475 # zsh 2003/12/16 (火) 07:02:54
>>3465 68user
恥の上塗り。

いろいろと試してみましたが、
ファイルを作成せずにステータスは取得できそうにありません。
後は作成するファイルが通常のファイルかFIFOかくらいの違いでしょうか?

------
#!/bin/sh
fifo="fifo.$$"
mkfifo -m 600 $fifo

trap "rm -f $fifo" 0 1 2 3 15
( command ; echo $? >$fifo ) | tee kekka.txt &
rtn=`cat $fifo`
echo $rtn

>>3472 hanzen
>>3473 68user
後は
ls -F | grep '/'
とかでしょうか。表示に/がついてしまいますが。

No. 3476 # 2003/12/17 (水) 11:19:43
UNIXでファイルを開かずにファイルの解析を行いたいのですが、
fileコマンドでは実行ファイルなのかどうかなど、詳しいことが
わかりませんでした。
#C言語関連のソースかどうか確認したいのです。

何か、他にいい方法はないでしょうか?
教えていただけるとありがたいですm(__)m

No. 3477 # tomo 2003/12/17 (水) 15:01:54
こんにちは。
以前、こちらで幾らか質問させて頂いた tomo と申します。
今、perlでタイマ処理をする事を考えているのですが、
perlではC言語の様にタイマIDという形で複数のタイマを
識別管理する事は出来ないのでしょうか?

No. 3478 # 68user 2003/12/19 (金) 00:50:36
>>3476
調べたいのは
> fileコマンドでは実行ファイルなのかどうか

> C言語関連のソースかどうか
のどちらですか?

「〜かどうか判定したい」ということなら、何らかの判断基準が
ないと判定できませんので、そこらへんを明確にしてください。

>>3477 tomo
> perlではC言語の様にタイマIDという形で複数のタイマを
> 識別管理する事は出来ないのでしょうか?
C にも perl にもタイマ ID という概念はありません。

そもそも「タイマ ID」とは Win32API (MFC?) のそれですか?

なら、perl で Win32API を利用できるモジュールを探せば
できるでしょうが、あいにく Windows には明るくないので
    http://www.cpan.org
から探してみてください。

No. 3479 # なっち 2003/12/20 (土) 14:14:55
68user 様

UNIXの部屋等、ちょくちょく参考にさせて頂いております。ありがとうございます。

私、現在、DNSまわりのプログラミングを行っておりまして、ネットワークプログラミングの基礎知識の
DNS クライアントを作ってみようのページを、基礎から理解する意味で読ませて頂いたのですが、
この(2)のページ、http://x68000.startshop.co.jp/~68user/net/resolver-2.html
DNSヘッダのフラグの部分の第13〜15bitの3bitがRCODEとなっていますが、これは第13〜16bitの4bit分の
間違いだと思うのですがいかがでしょうか。

細かい部分で申し訳ないのですが、気になりましたのでご報告させて頂きました。お忙しいとは思いますが、
よろしくお願いいたします。

No. 3480 # 68user 2003/12/20 (土) 22:35:38
>>3479 なっち
ご指摘ありがとうございます。修正しました。ついでに
    1…15bit、16…31bit
となっていたものを
    1…16bit、17…32bit
に修正しました。

# http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/resolver-2.html

しかし、一般的には MSB を第 0bit とする場合が多いでしょうか?
「詳解TCP/IP Vol.1」では 0〜31bit となっていましたので、
悩むところです。

No. 3481 # へにか [URL] 2003/12/21 (日) 00:08:07
何をもってして一般的というかによりますが・・・

ハードウェアでは、例えばverilogのバス表記の例にとると、
[15:0] > [0:15] >>> [1:16]という頻度で見かけます。

僕の知っている限りの物理層では、[0]が時間軸で最初に
送受信されるので、[0:15]という表記が現れます。
とはいえ、中身を解釈する際に、[15:0]のように置き換え
ないと、人間には理解し難い事が多々あり、そのような処理
は僕はよくします。

No. 3482 # 2003/12/24 (水) 00:15:56
awkの使い方について教えて下さい。
awkを使用して、以下の出力を、数字は、3桁毎にカンマで区切り、
出力位置を揃えて出力したいのですが、
180 file1.txt
1821 file2.txt
113457 fil3.txt

        180 file1.txt
    1,821 file2.txt
113,457 file3.txt
と出力したいのですが、
数字の部分を揃えることができません。
そのため、たの部分もそろいません。
どうすれば上手くできますか。

-------------------------------
#!/bin/sh
#

cat list.txt | sort -n -r | awk '
        function put_comm(val) {
                if (val < 1000) {
                        printf("%d",val) ;
                } else {
                        put_comm(val / 1000) ;
                        printf(",%03d",val % 1000) ;
                }
        }
        {
                if ($1 < 1000) {
                        printf("%d",$1) ;
                } else {
                        val=$1 ;
                        put_comm(val) ;
                }
        }
        {
                  #printf "\n"
                  printf(" %s\n",$2)
        }'

No. 3483 # tonpei 2003/12/24 (水) 15:15:14
いつも参考にさせていただいてます

dtterm上で動作するC言語のプログラムを作成しています
そのプログラムで、cursesのwaddchとwrefreshを使用して1画面分の描画を1文字ずつ行っているのですが、
その際にカーソル表示がされているため、ちらついてしまいます
カーソルを一時的に消す方法は無いでしょうか?

ちなみに、waddchで画面編集後、最後にwrefreshを1回呼ぶ方法ですと、
一気に1画面分を表示できるのですが、編集時間が長く感じられるため、
1文字ずつパラパラと表示したいと考えています。

No. 3484 # zsh 2003/12/24 (水) 18:16:33
>>3482
桁数の上限がわからないと駄目ですが
こんなのでどうでしょ?(下では8桁まで)

------
$ cat list
123 file1.txt
123456 file2.txt
1234567 file3.txt
$ cat test.awk
#!/bin/nawk -f
{
                i = sprintf("%d",length($1) / 3) ;
                j = sprintf("%d",length($1) % 3) ;
                if ( i > 1 ) {
                                if ( j == 0 ) j = 3 ;
                                str_buf = sprintf("%s",substr($1,0,j)) ;
                                for ( k=0 ; k<i ; k++ ) {
                                                cut_str = substr($1,j+(k*3)+1,3) ;
                                                if ( cut_str == "" ) break ;
                                                str_buf = sprintf("%s,%s",str_buf,cut_str) ;
                                                cut_str = "" ;
                                }
                } else {
                                str_buf = $1 ;
                }
                printf("%10s %s\n",str_buf,$2) ;
}

$ ./test.awk list
              123 file1.txt
      123,456 file2.txt
  1,234,567 file3.txt

No. 3485 # 68user 2003/12/24 (水) 19:01:30
>>3481 へにか
> 僕の知っている限りの物理層では、[0]が時間軸で最初に
> 送受信されるので、[0:15]という表記が現れます。
なるほど。ネットワークプログラミングでは当然ネットワーク
バイトオーダで MSB が先になるわけなので、
      [0:15] か [1:16]
のどちらかで決まりですね。

個人的には「プログラマたるもの数えるときは 0 から」という
ことで、そのうち [0:15] に修正しておこうと思います。


>>3483 tonpei
curses はよくわかってませんが、curs_set(0) ですかね。

capability 的には cursor_invisible (vi) っぽいです。

ただ、端末エミュレータにカーソルを消す機能があるかという
問題があるかもしれません。うちの FreeBSD の /etc/termcap に
      xterm-basic|xterm common (XFree86):...:vi=\E[?25l:...
とあったので xterm で
      % printf "\033[?25l"
とするとカーソルが消えましたが、kterm-6.2.0_5 では消えません
でした。kterm にカーソルを消す機能がないような感じがします。

でもまぁ dtterm なら多分大丈夫だとは思います。

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