|
>>4921 zsh ありがとうございます。 exprやcutでの使い方ありがとうございます。 勉強になります。 |
|
WindowsXP IE6.0 SP2 の別の端末から書き込みを おこなったら以下のエラー画面が表示されました。 何かインストールされていないものがあるのでしょうか。 エラー : 内部エラーが起こりました。 http://x68000.q-e-d.net/%7E68user/cgi-bin/wwwboard.cgi の実行ができませんで した。 おそらくCGIプログラムの不具合が原因です。 もし、こちらのファイル設定ミス・リンクミス・CGI の不具合などが原因であった場 合は早急に修正します。 の画面が表示されます。 |
|
>>4918 べた >>4921 zsh 説明ありがとうございます。 それでなのですが、ステータスが返ってくるということで、 「/usr/local/bin/iconv」を使っています。 Bシェルで実行しています。 iconvコマンドをパイプでつないで、連続で実行しています。 /usr/local/bin/iconv -f SJIS -t UTF-8 file_sjis.txt | /usr/local/bin/iconv -f UTF-8 -t UTF-16 > file_utf.txt 1回目のiconv(パイプの左側のiconv)がエラーとなったとき、 ステータスがエラーで返ってきません。 エラーを判断したいのですが、どのようにしたらエラーと判断 できるでしょうか。 /usr/local/bin/iconv -f SJIS -t UTF8 file_sjis.txt | /usr/local/bin/iconv -f UTF-8 -t UTF-16 > file_utf.txt echo $? iconv: conversion to UTF8 unsupported 0 ”0”が返却。 /usr/local/bin/iconv -f SJIS -t UTF-8 file_sjis.txt | /usr/local/bin/iconv -f UTF-8 -t UTF16 > file_utf.txt echo $? iconv: conversion to UTF16 unsupported 1 ”1”が返却。 |
|
>>4923 べた ありがとうございます。 $ expr $email : '\(.*\)@.*' $ expr $email : '.*\(@.*\)$' $ echo $email | cut -d '@' -f 1 $ echo $email | cut -d '@' -f 2 どれでも、取り出せました。 |
|
>>4925 べた > 1回目のiconv(パイプの左側のiconv)がエラーとなったとき、 > ステータスがエラーで返ってきません。 > エラーを判断したいのですが、どのようにしたらエラーと判断 > できるでしょうか。 bash なら PIPESTATUS を使えばよいですが、sh であれば 終了ステータスは取得できないと思います。しょぼいですが、 パイプを使うのをやめるのがよいかと思います。 >>4924 べた > WindowsXP IE6.0 SP2 の別の端末から書き込みを > おこなったら以下のエラー画面が表示されました。 IP アドレスや発言内容などから SPAM と判定されたのかもしれません。 特に判定精度の高いものではないので、頻発するようならご連絡ください。 |
|
>>4927 68user ありがとうございます。 sh できないんですね。 出力結果がなければ、出力結果をパイプで渡さなければ 「&&」でいけるのでないかと覆いますが。 パイプを使わず個々に行います。 |
|
Solaris8 なのですが、「/var/log/syslog」に、 TCPコネクションのログを出力させたいのです。 telnet、ftpなど、接続したログを出力したいの です。 どのようにすればよいのでしょうか。 「/etc/syslog.conf」には、以下の様な記述をしています。 user.notice /var/log/syslog syslogのデーモンも再起動したのですが、出力されません。 |
|
>>4829 68user ftpのログを取得するAIXの場合の例です。 #vi /etc/inetd.conf (ftpのエントリーで最後に「-l」または「-d」オプションを追加) ftp .... /usr/sbin/ftpd ftpd -l または ftpd -d (転送ファイル名を確認するだけであれば -l オプションの方がログが少なくて済みます) #refresh -s inetd (inetdデーモンをリフレッシュ) #vi /etc/syslog.conf (syslog設定ファイルにftpのログを取得するためのエントリを追加) daemon.info /tmp/ftpd.log (daemon.debugであればもう少し詳しい詳細が確認できます) #touch /tmp/ftpd.log (ログファイルを作成) #refresh -s syslogd (syslogデーモンを再起動) |
|
>>4931 バンガード ごめんなさい。 4929へのコメントでした。 |
|
>>4932 バンガード お礼が遅れ申し訳ありません。 ご説明ありがとうございます。 どちらにしてもデーモンの再起動(リフレッシュ)が 必要なんですね。 |
|
Solaris8 なのですが、シェルを実行する際、 ./シェル名としないと起動できません。 「./」で起動するにはどうしたらよいのでしょうか。 「./」で起動できるアカウントがあるので、違いを比べてみると PATHの変数が異なっていました。 PATH=./:/usr/bin・・・・・ とか PATH=・・・・/usr/bin: PATH変数の中に、「./」の設定がある。 PATH変数が「:」で終わっている。 「./」を指定しないと動かないアカウントは、両方がない状況と なっています。 どのように環境変数を設定すればよいのですか。 |
|
>>4934 べた > 「./」で起動するにはどうしたらよいのでしょうか。 「./」なしで起動したいということでしょうか? PATH 環境変数に ./ を含めれば可能ですが、お勧めはしません。 特定のディレクトリにスクリプトを集めて、そのディレクトリを PATH 環境変数に含める方がよいと思います。 なお、同じ名前のコマンド(スクリプト)が複数のディレクトリに 存在する場合は、PATH 環境変数で先に見つかったコマンド (左側のパスから順番に探しに行きます)が実行されます。 |
|
>>4934 べた PATH に . を含めない理由は以下のとおり。 ・セキュリティホールとなる。PATH=.:/bin:/usr/bin:/usr/local/bin となっていて、 cd ~foo; ls としたときに /home/foo/ls が存在したら、そのプログラムを実行 してしまう。cd /tmp; ls も同様。そのプログラムがどんな悪さをするかはわからない。 ・PATH に . を加えると、カレントディレクトリによって実行されるコマンドが異なる 可能性があるため、説明がめんどくさいし、はまりやすくなる。例えば /bin と /usr/bin に同名のコマンドがあるとして、コマンド foo をタイプしたときに、 - カレントディレクトリが /usr/bin の場合は /usr/bin/foo が実行される - カレントディレクトリが /usr/bin 以外の場合は /bin/foo が実行される というのはわかりづらい。 ・csh・tcsh・bash・zsh など、今どきなシェルを使っている場合は、 ./ からタイプした方がファイル名補完を使えるため、入力が速い。 |