質問ではないんで、邪魔だったら消してくださいね。 過去ログを時間が許すままに読んじゃいました。 とってもおもしろかったです^^ まだまだいっぱい残っているので読破しようとおもいます。 言語はたくさん覚えたけど、UNIXには触ったことがないというある意味 希少なプログラマーなのでちょっとわからないこともあるんですけど、 予想するのが楽しいです。 最近のログをみていると応援の書き込みが少なかったので「管理がんばってください」の意味をこめてかきこませていただきました。 お目汚し失礼いたしました。 |
大変、参考になりました。 私が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の自動起動は、いくらでも未然に防げるものの...) これまでいろいろご教授いただきまして、ありがとうございました。 また書き込みにくるかもしれませんが、暫くは教えていただいた情報を元に試行錯誤してみます。 それでは、よい休日を。 |
みなさん こんにちは。 すごく簡単な質問だと思うのですが、 過去ログを見てもわからなかったため質問いたします。 UNIXコマンドの compress a 1>/dev/null 2>&1 というコマンドについて。 compress a は、aファイルをcompress形式で圧縮するということはわかるのですが、 1>/dev/null 2>&1 は、どういう処理をしているのかわかりません。 よろしくお願いします。 |
>>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 |
ご回答ありがとうございました。 すでにまとめてありましたね。 こんどから、もっときちんと調べます。 |
大雑把な質問ですがResetConnect関数はどのように使うものなのですか? |
挨拶が抜けましたが、初めて書き込みます。宜しくお願いいたします |
>>3456 Hide ResetConnect関数とは何ですか? (google でも 6件しか 引っかからないようですけれども) |
一般的な関数でないのでしょうか? RST送信するんですが・・ |
>>3459 Hide わたしは初めて聞きました。 |
Bシェルなのですが、tarで標準出力した結果をteeでファイルに出力し なおかつ、tarの正常、異常を判断したいのですが、どうすればよい のですか。 tar -cvf /dev/rmt/0m * 2>&1 | tee -a kekka.txt と行ったのですが、標準出力及びkekka.txtに出力されたのですが、 $?の値が常に「0」の状態です。 標準出力、ファイルへの出力、$?の判定を行えるよにするにはどう すればよいのですか。 |
>>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 とステータスコードをファイルに保存するというかっこ悪い方法で 実現できました。より美しいやり方を募集中です。 |
>>3462 68user 俺には美しいやり方なんて無理ですが、ファイルじゃないだけなら % ( true ; rc = $? ) | tee > kekka.txt てのは?;-) |
>>3463 has ああ、すみません、3462をよく読んでませんでした。 68userの言う、&&とか||の処理詳細と(;)の違いは良く知らないんですが、 redhat 9.0のshでは3463のやり方ができたもので。 一応ご報告まで。 |
>>3463 has それだと (〜) の部分はサブシェルが実行することになります。 サブシェルのシェル変数は確かに $rc=1 になるけれど、親の シェルのシェル変数には影響しないので、結局 (〜) の外から $rc を参照することはできないと思います。 ちなみに a && b は、a のステータスコードが 0 のときのみ b を実行 a || b は、a のステータスコードが >0 のときのみ b を実行 です。 |
はじめまして. httptalker をしばらく前から愛用しております. 非常に強力なツールで,Webから必要な情報を取得し目的にあわせて加工するなど の用途でたいへん助かっているのですが,ひとつ質問をさせてください. パスワードの認証の後でCookieを受け渡す形式のWebSite のデータをGETする よい方法は,あるでしょうか? httptalker のScript の中にCookie のやりとりをする機能を埋め込めばよさそう ですが,わたしにはかなり難しいのです. |
>>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) などを使った方がよいでしょう。 |
>>3462 68user $ ( true | tee -a kekka.txt ) & ; wait $! ・・・・・やっぱり綺麗じゃないですね。 |
すみません徹夜明けでボケてました。 吊って来ます・・・ |
>>3463 has 俺には美しいやり方なんて無理ですが、ファイルじゃないだけなら % ( true ; rc = $? ) | tee > kekka.txt てのは?;-) 私は、HP-UXを使用しているのですが、 % ( true ; rc = $? ) と実行するとシステムのシャットダウンになります。 他のOSも同じだと思うのですが、使用するときは注意した方が 良いと思います。 |
>>3470 くに > % ( true ; rc = $? ) > と実行するとシステムのシャットダウンになります。 /etc に PATH が通っていたため /etc/rc が実行されたのではないかと 思います (引数は = と $?)。 sh の変数代入は = の前後に空白を入れてはいけないので、 rc = $? でなく、rc=$? ですね。 |
lsコマンドについて質問です。 lsと実行するとファイル名やディレクトリ名が表示されますが、 ファイル名だけとかディレクトリ名だけとかを表示させたいの ですが、できるのでしょうか。 manで調べてみたのですが該当するものもありません。 何かと組み合わせてて1行でできないものでしょうか。 |
>>3472 hanzen > lsと実行するとファイル名やディレクトリ名が表示されますが、 > ファイル名だけとかディレクトリ名だけとかを表示させたいの > ですが 以下のやりとりを参考にしてください。 >>3245 bebe >>3246 68user |
>>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 |
>>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 '/' とかでしょうか。表示に/がついてしまいますが。 |
UNIXでファイルを開かずにファイルの解析を行いたいのですが、 fileコマンドでは実行ファイルなのかどうかなど、詳しいことが わかりませんでした。 #C言語関連のソースかどうか確認したいのです。 何か、他にいい方法はないでしょうか? 教えていただけるとありがたいですm(__)m |
こんにちは。 以前、こちらで幾らか質問させて頂いた tomo と申します。 今、perlでタイマ処理をする事を考えているのですが、 perlではC言語の様にタイマIDという形で複数のタイマを 識別管理する事は出来ないのでしょうか? |
>>3476 橘 調べたいのは > fileコマンドでは実行ファイルなのかどうか と > C言語関連のソースかどうか のどちらですか? 「〜かどうか判定したい」ということなら、何らかの判断基準が ないと判定できませんので、そこらへんを明確にしてください。 >>3477 tomo > perlではC言語の様にタイマIDという形で複数のタイマを > 識別管理する事は出来ないのでしょうか? C にも perl にもタイマ ID という概念はありません。 そもそも「タイマ ID」とは Win32API (MFC?) のそれですか? なら、perl で Win32API を利用できるモジュールを探せば できるでしょうが、あいにく Windows には明るくないので http://www.cpan.org から探してみてください。 |
68user 様 UNIXの部屋等、ちょくちょく参考にさせて頂いております。ありがとうございます。 私、現在、DNSまわりのプログラミングを行っておりまして、ネットワークプログラミングの基礎知識の DNS クライアントを作ってみようのページを、基礎から理解する意味で読ませて頂いたのですが、 この(2)のページ、http://x68000.startshop.co.jp/~68user/net/resolver-2.htmlの DNSヘッダのフラグの部分の第13〜15bitの3bitがRCODEとなっていますが、これは第13〜16bitの4bit分の 間違いだと思うのですがいかがでしょうか。 細かい部分で申し訳ないのですが、気になりましたのでご報告させて頂きました。お忙しいとは思いますが、 よろしくお願いいたします。 |
>>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 となっていましたので、 悩むところです。 |
何をもってして一般的というかによりますが・・・ ハードウェアでは、例えばverilogのバス表記の例にとると、 [15:0] > [0:15] >>> [1:16]という頻度で見かけます。 僕の知っている限りの物理層では、[0]が時間軸で最初に 送受信されるので、[0:15]という表記が現れます。 とはいえ、中身を解釈する際に、[15:0]のように置き換え ないと、人間には理解し難い事が多々あり、そのような処理 は僕はよくします。 |
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) }' |
いつも参考にさせていただいてます dtterm上で動作するC言語のプログラムを作成しています そのプログラムで、cursesのwaddchとwrefreshを使用して1画面分の描画を1文字ずつ行っているのですが、 その際にカーソル表示がされているため、ちらついてしまいます カーソルを一時的に消す方法は無いでしょうか? ちなみに、waddchで画面編集後、最後にwrefreshを1回呼ぶ方法ですと、 一気に1画面分を表示できるのですが、編集時間が長く感じられるため、 1文字ずつパラパラと表示したいと考えています。 |
>>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 |
>>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 なら多分大丈夫だとは思います。 |