68user's page 掲示板

Prev< No. 2558〜2580> Next  [最新発言に戻る] [過去ログ一覧]
No. 2558 # 68user 2002/03/07 (木) 23:31:54
>>2556 stone_free
> #!/usr/bin/perlの後にオプションをつける場合は、クオートか
> なにかでくくらないといけないのでしょうか。
原理を書き出すとまた長くなってしまうので割愛しますが、
    #!/usr/bin/perl -T
と書いたスクリプト hogescript を実行するには
    % ./hogescript
とします。

これは
    % /usr/bin/perl -T ./hogescript
と等価であって、
    % /usr/bin/perl ./hogescript
とは等価ではありません。

> また、「汚染モード」という物騒な名前はなにか訳があるのでしょうか。
ラクダ本では「汚染モード」と訳してあります。詳しくはこちらなど。
    http://www-sampei.ctrl.titech.ac.jp/perldoc/perl_20.html

No. 2559 # stone_free 2002/03/08 (金) 01:30:44
>>2558 68user
なるほど!よくわかりました。
重ね重ねありがとうございました。

No. 2560 # Moo [E-mail] 2002/03/09 (土) 12:23:55
    こちらのページのお陰で、サーバプログラミングに入ることが出来ました。
    CP/M、DOS、Windowsとやってきたのですが、サーバプ
ログラミングに入れなくて困っておりました。
    仕事でサーバ側のプログラムを組む必要に迫られ、Unixも知らな
いし、サーバサイドの概念もつかめなくていたのに、今ではFTPや
HTTP、POPもcronも使えるようになりました。
    ついでにPerlまで覚えてしまいました。

    黙って読ませていただくばかりでは心苦しく、お礼を述べさせて頂き
に参りました。
    今後もUnix勉強の基本ページとして利用させていただきます。
    親切で分かりやすいページを作って下さり有り難うございます。
    心より感謝申し上げます。

No. 2561 # へんきち 2002/03/10 (日) 23:44:51
おっと、私もこのページにお礼を言いに来たのですが
プチ先駆者が(笑)
このページには大変お世話になっています
ネットワークプログラミングの部屋でファイルディスクリプターという
概念を初めて知りました、僕は学生なのですが将来こういう方面の仕事に
つきたいと思ってます。大変に参考になるページでした
このページの更新、たのしみにしてますm(。。)m

No. 2562 # たこ 2002/03/11 (月) 09:40:55
>> 2557

いろいろと調査してみた結果、windows上でコンパイルしたものを圧縮してsolarisに持っていっても、JAVA周りの環境さえ同じなら正常に動作するということなので、大丈夫だと思います。

ありがとうございました。

No. 2563 # 小僧 2002/03/11 (月) 17:50:55
お世話になります、小僧です。
AIX上での文字コードに関してお聞きしたい事があります。

ファイルの文字コードを確認するコマンドというのは
存在するのでしょうか?
例えば、「このファイルの文字コードはShift-JISだな」などの
判断を行えるようなコマンドの事なのですが。

それと、iconvを行う事が出来る文字コードは、
"/usr/lib/iconv"ファイルに登録されているようなのですが、
このファイルはデフォルトでは存在しないのでしょうか?

ご存知の方がいらっしゃいましたら、宜しくお願い致します。

No. 2564 # スナフキン 2002/03/12 (火) 00:09:57
kccなんてコマンドがありましたけど、AIXに存在するかどうかは
不明です。

Ex:
kcc -c kannji_file.txt

ん〜ちょっと調べてみると、どうもLinux系だけみたいだなぁ・・・

No. 2565 # sisya [E-mail] 2002/03/12 (火) 02:27:50
はじめまして、
現在色々とcgiを作成しており、
色々とよくわからないバグを調べている内
たどり着いた次第です。

他のサイトではあまり解説されていない
ヘッダの解説など大変助かりました。
これからも更新楽しみにさせていただきます。

No. 2566 # 小僧 2002/03/12 (火) 10:39:54
>>2564 スナフキン

kccコマンドですが、ちょっと無さそうですね・・・
現在使用しているAIXにmanコマンドが入っていないので
なんともいえませんが、ネットや手持ちの資料には
載って無さそうです。

ついでに、と言っては失礼ですが、iconvでもう一つ質問を。
iconvコマンドで、変換後に存在しない文字が存在した場合、
自動で"_"に変換されるようですが、この"_"を他の文字に
変更する事は可能なのでしょうか?

例えば"*"にしたりする事は可能なのでしょうか?
ご存知の方がいらっしゃいましたらアドバイスお願い致します。

No. 2567 # 68user 2002/03/12 (火) 11:35:58
>>2564 スナフキン
文字コードを判断する方法ですが、mule に付属している coco、
昔 fj に流れた kanjitype、jcode.pl の jcode::getcode、
mule/emacs のステータスバーに表示される E/S/J の文字。

僕が知っているのはこれくらいです。

No. 2568 # 小僧 2002/03/13 (水) 20:28:59
お世話になります、小僧です。

色々と調べて頂いてありがとうございます。
どうやら、私の環境で調べる方法はなさそうですね・・・

また分からない事がありましたら、アドバイスお願い致します。

No. 2569 # 68user 2002/03/14 (木) 01:37:04
>>2564 スナフキン
> ん〜ちょっと調べてみると、どうもLinux系だけみたいだなぁ・・・
こういう一般的な用途のコマンド (ファイルを読んでコード変換するだけ) で、
なおかつソースが公開されているものは、よっぽどのことがない限り Linux
専用ということはありません。

FreeBSD の port/package にもありますし、NetBSD の package には含まれて
ないようですがコンパイルすれば使えるでしょう。まぁ、それを言い出したら
多分 Windows でも Mac でも使えそうな気がしますが。

>>2563 小僧
そういえば最初にここを紹介すべきでした。
    http://www.jp.FreeBSD.org/QandA/HTML/1254.html

>>2566 小僧
> 自動で"_"に変換されるようですが、この"_"を他の文字に
> 変更する事は可能なのでしょうか?
多分できないです。できたとしても、その環境の iconv のみの独自拡張でしょう。

こういうのは考え方を変えて、
    % sed 's/&/&amp;/g' | sed 's/_/&ubar;/g' | iconv -f shift_jis -t euc-jp | \
            sed 's/_/\*/g' | sed 's/&ubar;/_/g' | sed 's/&amp;/&/g'
などとファイル中の _ を別の文字に置換してから iconv を通せば
なんとでもできます。

# &ubar; というのは、いま適当に考えた実体参照で、本当は存在しません。

>>2560 Moo
>>2561 へんきち
>>2565 sisya
どもども。できれば改善すればよい点も書いていただけると嬉しいです。
# と言っても、時間がなくて対応できない可能性が大なんですが。

No. 2570 # q19_77 [E-mail] 2002/03/14 (木) 13:57:43
お世話になっております。
シェルスクリプトが上手く動作せず困っています。

行っている方法は、
Linux7.1J sendmail-8.11.2-14 procmail-3.21-0.71で
ユーザ"XYZ"のホームディレクトリに.procmailrcファイルを置き、
XYZ宛てのメール受信時に条件が合えばシェルスクリプト"ABC"を
実行するようにしています。

メール受信時に条件が合い、シェルスクリプトを実行するところまでは
上手くできたのですが、実行するシェルスクリプトの中の一部分のみ
動作しません。

その部分とはユーザ"mono"に切り替え、さらにシェルスクリプトを実行する以下です。
su - mono -s /home/mono/mno.sh ---(1)
※ユーザ"mono"はパスワードなしです。

((なお、mno.shの記述は
scp /var/XYZ/123.txt abc.world.co.jp:/home/mono/123.txt
ssh abc.world.co.jp sh /home/mono/mno2.sh
です。
他のLinuxサーバabc.world.co.jpへsshでファイルをコピーし、
他のサーバのシェルスクリプトmno2.shを実行))

(1)の部分に対してエラーでは、
standard in must be a tty
と表示されます。

他のサーバではこの記述通りで動作しました。
また、メール受信時にシェルスクリプト"ABC"を実行するユーザ"XYZ"
で手動でシェルスクリプトを実行すると(1)の部分も動作します。

Webで調べたところ、同じような現象になっている例もありましたが
解決策がありません。
そしてエラーの意味がよくわかりません。

勝手な推測ですが、実行しているサーバではセキュリティが強いため
パスワードなしとしている"mono"ユーザが原因ではないかと思います。

ですが、シェルスクリプトでパスワードも記述した形での"su"の実行は
可能かどうか分かりません。

申し訳ありませんが、何かよい策をお教えください。

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

No. 2571 # ふくし [E-mail] 2002/03/14 (木) 15:29:42
タブ区切りテキストを split /\t/ で切って各フィールドを変数に読み込み、
join "\t" で戻そうとすると、
場合によってはデータが抜けていることがあるので困ります。
タブ区切りデータを a, b, c, d、タブを->であらわすと、
split /\t/, "a->b->c->d" => (a,b,c,d)
split /\t/, "a->->c->d" => (a,c,d)
split /\t/, "a->b->->d" => (a,b,d)
split /\t/, "a->->->d" => (a,d)
split /\t/, "a->b->->" => (a,d)
ということで、
  1 while $str =~ s/\t\t/\t♪\t/;
  @list = split /\t/, $str;
  for (@list) {
    s/♪//; # $_ は @list の要素を参照する。♪がデータにないと仮定
  }
とかやってるんですが、いかにもダサいですね。
もっと常道はあるんでしょうか?

Excel で編集すると a->b->->\n が a->b\r\n となってしまうのも
困る。

No. 2572 # 田中 [E-mail] 2002/03/14 (木) 21:27:33
<A href="javascript:x(1)">1</A>
をクリックすると最終的に
Nの値(abcの所)を計算し
document.location.href="http://www.a/cgi/a.cgi?N=abc";
としていたのですが、不便な所を感じ変えたいと思っています。

Submitボタンを押したらNを計算し
<FORM name="f" method="post" onSubmit="if(x() != true) {return false}" action="a.cgi">
<INPUT type=hidden name=N value=abc>
としてa.cgiを起動する方法は知っているのですが、
上のものと組み合わせた感じで
<A href="javascript:x(1)">1</A>をクリックして
最終的にNを計算し
<INPUT type=hidden name=N value=abc>
のようにpost/getで起動する方法はないでしょうか?
自分なりにやってみてもよくわからないのです。
どなたか教えて下さい。
お願いします。
ちなみに初心者です。難しいことは解らないので細かく教えていただくと
助かります。

No. 2573 # 68user 2002/03/14 (木) 21:33:39
>>2570 q19_77
> standard in must be a tty
su は端末 (tty) からのパスワード入力を求めているのに、
端末がないよ、という意味です。

端末というのは、キーボードで入力ができて、文字が表示されるもの、
たとえば kterm がそれです。procmail 経由で実行されると端末が
割り当てられないので (キーボードもないし、出力する画面もない)
エラーになっているわけです。

> 他のサーバではこの記述通りで動作しました。
本当ですか? どうして root でもないのに、パスワードなしで
su で他ユーザになれるのですか?

> su - mono -s /home/mono/mno.sh

気になる点は2つ。

なぜ -c でなく -s なのでしょうか?
    http://www.linux.or.jp/JM/html/GNU_sh-utils/man1/su.1.html
によると、-s はシェルを実行するオプションですから、-s の場合端末が
あることをチェックしているのかもしれません。

あるいは環境変数 TERM などがセットされているので、端末を見にいってしまう
という可能性も考えられます。

ちなみに FreeBSD 4.4-RELEASE では、端末がない状態で (cron 経由)
    echo PASSWORD | su root -c /usr/bin/id
でプログラムの実行ができました。


>>2571 ふくし
> 場合によってはデータが抜けていることがあるので困ります。
そんなことはないと思いますが、perl のバージョンは何ですか?
perl-5.005_03 ではそのような挙動を示しませんでした。

No. 2574 # ふくし 2002/03/15 (金) 02:10:38
>>2573 68user
                さん:

えっと、
  split /\t/, "a->b->c->d" => (a,b,c,d)
  split /\t/, "a->->c->d" => (a,'',c,d)
  split /\t/, "a->b->->d" => (a,b,'',d)
  split /\t/, "a->->->d" => (a,'','',d)
  split /\t/, "a->b->->" => (a,b,'','')
となってくれる、ということですか?
あれーおかしいなー、、。

実は、下の♪を使ったコードが動いたのでロクな検証をしてないのでした。
勝手な思い込みで外していたら申し訳ありません。
Excel による末尾のタブの削除等の現象かな?
うーんうーん。

No. 2575 # big 2002/03/15 (金) 12:14:22
皆さん教えてください。
DATのテープを新しく交換するときに、ラベリングを行おうとすると
I/O errorが出るんですけど、まさか、formatが必要とかそんなことですか

No. 2576 # 小僧 2002/03/15 (金) 12:26:42
お世話になります。

相変わらずiconvで困っています。
下記のように、コマンドを発行したのですが、
エラーが出てしまってiconvが出来ません。

----- コマンド発行 -----
$iconv -f shift_jis -t euc aaa

----- エラーメッセージ -----
iconv: 0791-004 コンバータがオープンできません

自分で調べたところ、必要なファイルだと思われるのは、
/usr/lib/iconvファイルだと思うのですが、
このファイルは存在しません。
もしこれが原因なら、中身のサンプルを教えていただければ幸いです。

宜しくお願い致します。

No. 2577 # 68user 2002/03/15 (金) 12:37:00
>>2576 小僧
> $iconv -f shift_jis -t euc aaa
euc という文字コードは存在しないような気がするので (ほんとか?)、
とりあえず -t euc-jp を試してみましょう。

>>2574 ふくし
> となってくれる、ということですか?
はい、そういうことです。

No. 2578 # 小僧 2002/03/15 (金) 13:51:51
>>2577 68user

>とりあえず -t euc-jp を試してみましょう。

----- 実行文 -----
iconv -f shift-jis -t euc-jp aaa

を行ってみましたが、同じ現象が発生しました。
当然の事ながら、ファイル"aaa"はきちんと存在します。

宜しくお願い致します。

No. 2579 # /tk 2002/03/15 (金) 14:25:26
>>2574 ふくし
> split /\t/, "a->b->->"
split /\t/, "a->b->->", -1
でわ?

No. 2580 # 68user 2002/03/15 (金) 16:00:03
>>2576 小僧
web で AIX のマニュアルを探してみました。
    http://publib.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/cmds/aixcmds3/iconv.htm
    http://publib.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixprggd/genprogc/convert_prg.htm#A197C1176
によると、AIX では euc-jp ではなく IBM-eucJP なのかもしれません。
Shift_JIS も同様に IBM-932 かもしれません。

> 自分で調べたところ、必要なファイルだと思われるのは、
> /usr/lib/iconvファイルだと思うのですが、
上記マニュアルを見ると、コンバータのファイルのありかは
    /usr/lib/nls/loc/iconv/
    /usr/lib/nls/loc/iconvTable/
と書いてあるように見えます。
# なぜ /usr/lib/iconv/ だと判断したかが第三者にわかるように書きましょう。
# 皆が AIX を使っているありませんので。

僕は AIX4.3 のマニュアルを見ましたが、あなたがお使いのバージョンが
わからないので、これが正しいかどうかはわかりません。ちゃんと OS の
バージョンを書きましょう。

>>2579 /tk
なるほど。その例では確かに -1 が必要ですね。僕は
    split /\t/, "a->->c->d" => (a,'',c,d)
のように真ん中に TAB がある例だけを試していて、気づきませんでした。

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