|
>>4243 まつ わたしが言いたいのは - スクリプトの先頭で LANG を設定しても、既に字句解析は 終了しているのだから意味がないのでは。 - うまく動く環境では、元々 ja_JP.PCK が設定されていただけでは。 ということです。 > stat: No such file or directory これは別問題ですよね。 #!/bin/csh -f echo "チェック" が動くかどうかを確認すべきです。 |
|
あと、 Locale could not be set properly についてはわかりません。 こちらの環境では、ja_JP.PCK ロケールがない場合のみ このエラーが出て、ロケールがある環境ではうまく動きました。 |
|
>>4243 まつ メッセージの意味としては、選択されたロケールが使用できない状態(つまりインストールされていない) である事を示しています。 恐らく今の状態は 1./etc/profile か /.profileで LC_ALL を設定している。(且つ間違い) 2.当然 root から生成された子プロセスにも LC_ALL が設定されている(且つ間違い) 3.LANG を変更する際に( LC_ALL が空ではないので) LC_ALL のロケールについても チェックされる →存在しないロケールなので「Locale could not be set properly」を出力 (ただし LANG は変更されている筈) だと思います。 一般ユーザで動作するのであれば、PCK ロケールはインストールされているので 文字化けの原因は、親プロセスの環境変数の違いによるのかも知れません。つまり >>4244 68user ではないかと。 (確認するためには wrapper スクリプトかますのが簡単だと思います。) |
|
>>4246 zsh > 3.LANG を変更する際に( LC_ALL が空ではないので) LC_ALL のロケールに > ついてもチェックされる なるほど、それは気がつきませんでした。 ja_JP.PCK ロケールがインストールされている Solaris2.6 で、LC_ALL に JA16SJIS をセットして、さらに LANG に ja_JP.PCK をセットすると、 Locale could not be set properly となりました。 |
|
68user様、zsh様、返事が遅くなり大変申し訳ございません。m(_ _)m >>4246 zsh とてもよく分かりました。 .profileは / にも /etc にもありませんでしたが、子プロセス起動時に 間違ったLC_ALLを設定しているのが原因なのですね。 子プロセスを再起動すれば解決するのでしょうね。 開発依頼者へお願いしても中々動いてくれません・・(T^T) なので、このスクリプトのみをEUC-JPに変えてunsetenv LC_ALLしたところ 正常に実行できました。 ということで、wrapperスクリプトをかまして確認してませんが、お二人の 仰ることに間違いはないですから、その旨開発依頼者へ報告しておきます。 色々有り難うございました。助かりました。m(_ _)m これで心置きなくお盆休みに入れます(^^) |
|
スクリプトをシフトJISへ戻してwrapperスクリプトをかませて テストしてみました。 -----wrapper.sh------------------ #!/bin/sh -fx exec env LANG=ja_JP.PCK /disk01/hoge/hoge01/sh/FNC0123.csh -----FNC0123.csh------------------ #!/usr/bin/csh unsetenv LC_ALL ・・・ -----ツールから実行した結果------------------ couldn't set locale correctly + exec env LANG=ja_JP.PCK /disk01/hoge/hoge01/sh/FNC0123.csh ・・・ ----------------------- のように最初に変なメッセージが表示されますが、それ以降は 文字化けもなく理想どおりの結果が得られました。 最初の変なメッセージは間違ったLC_ALLを設定している為でしょうか? 何はともあれ、これで子プロセスを再起動してもしなくても正常に 動作しそうです。 どうも有り難う御座いました。m(._.)m |
|
たわむれに Ajax で遊んでみました。RFC のタイトルから検索を行います。 http://X68000.q-e-d.net/~68user/rfc/ 以下のような URL も有効です。 http://X68000.q-e-d.net/~68user/rfc/?key=821 http://X68000.q-e-d.net/~68user/rfc/?key=http XMLHttpRequest をひとつしか生成しないタイプではなく、ばしばし XMLHttpRequest を 作る、富豪版です (google タイプ)。ソースはこちら。 http://X68000.q-e-d.net/~68user/cgi-bin/cvsweb.cgi/public_html/rfc/ >>4294 hagu > 最初の変なメッセージは間違ったLC_ALLを設定している為でしょうか? unsetenv LC_ALL には意味がないので、 env LC_ALL= LANG=ja_JP.PCK ... とすれば直ると思います。 |
|
findコマンドでファイルが今日(本日)作成されたものだけを 抽出したいのですが、以下でよいのでしょうか; find . -name '*.*' -mtime -1 -print 他に別の方法がありますか。 |
|
>>4251 みのさん ・ファイル名で絞り込まないのであれば -name オプションは不要です。 ・-mtime -1 では「本日作成」ではなく、「24時間以内に変更」されたものが対象となります。 (作成日をみるようなオプションは無いと思います。) ・-print オプションは無くても出力されます。 ・ファイルに限定したいのであれば -type f が必要です。 こんなもんでしょうか。 |
|
>>4251 みのさん 追加。 - 一般的な UNIX のタイムスタンプには、厳密な意味でのファイル作成時刻は 存在しない。ctime は、例えばパーミッションを変更すると更新される。 - 「24時間以内」ではなく「本日」にしたいなら、適当なファイルを 作って、touch で mtime を前日 23:59:59 にして、 find -newer [適当なファイル] とするのが一般的。しかし手抜きするなら以下のような方法も。 % find . -type f -ls | grep "`date '+%b %d'`" >>4252 zsh BSD や GNU の find には -ctime オプションがあります。-cnewer ってのも あるようですね (基準ファイルの mtime と検索対象の ctime を比較)。 今日の発見その 1 touch(1) などが使うシステムコール utimes(2) って、ctime を更新できない んですねぇ。atime・ctime・mtime いずれも変更可能だとずっと思っていました。 今日の発見その 2 FreeBSD 5.x 以降で対応された UFS2 では本当の生成時刻 (inode 作成時刻) が 保存されていて、struct stat の st_birthtime で参照可能なようです。へぇ。 http://www.usenix.org/events/bsdcon03/tech/full_papers/mckusick/mckusick_html/ http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=stat&dir=jpman-5.2.0%2Fman§=2 |
|
>>4250 68user RFC のタイトルだけでなく、全文検索もできるようにしました (namazu を使っているので Ajax には向かないですが)。 http://X68000.q-e-d.net/~68user/rfc/ 結構使えるかも、と思うのはわたしだけですかそうですか。 |
|
>>4254 68user JavaScript必須というのが、いきなり敷居が高いと申しますか、何と申しますか・・・ 今みたいに、帰省先でpoorな環境で使っていると、その時点で引いてしまっております。 >>4250 68user ここでポイントしている>>4294が、4294まで投稿が伸びたときに、どうなるか、気になるところです。 |
|
> 4523 ありがとうございます。 別なんですが、 カンマ区切りのCSV形式のデータを読み込み nawkのsub関数を使用して文字列の置換をやっています。 フィールド2番目のみを入れ替えようとして以下の様に しました。 置換は行われたのですが、カンマが半角スペースに置換え られて出力されてしますのです。 カンマのまま出力させるには、どうすればよいのですか。 nawk -F"," -v OUT=${OUT_FILE} -v OLD=${OLD_STR} -v NEW=${NEW_STR} ' BEGIN { output=sprintf("%s",OUT); } function func(OLD,NEW) { (処理) sub($2,NEW,$2) ; print >> output ; (処理) } func(OLD,NEW); }' $IN_FILE |
|
>>4253 68user フォローありがとうございます。 -ctime オプションは使ったことが無いですね。 (使う場面もない・・・) >>4254 68user Ajax を弄ってみたいと思っていたので、 サンプルとして参考にさせて頂きます。 >>4256 みのさん 変数OFSで出力用の区切り文字を指定できます。 |
|
>>4257 zsh >変数OFSで出力用の区切り文字を指定できます。 ありがとうございます。 上手くいきました。 |
|
>>4255 へにか > JavaScript必須というのが、いきなり敷居が高いと申しますか RFC の検索がやりたかったわけではなく、Ajax で遊んでみたかった だけなので、Javascript 必須なのはなにとぞご勘弁を。 >>4256 みのさん お礼だけではなく、結果報告をしていただけるとうれしいです。 http://x68000.q-e-d.net/~68user/cgi-bin/wwwboard.cgi?howtouse >>4257 zsh > Ajax を弄ってみたいと思っていたので、 > サンプルとして参考にさせて頂きます。 学習目的ならば http://chasen.org/~taku/software/ajax/ime/ の方がシンプルでよいと思います。ただし上記 URL の if (oldkey != key) { oldkey = key; if (xmlhttp.readyState == 1 ... ){ return; } は、正しくは if (oldkey != key) { if (xmlhttp.readyState == 1 ... ){ return; } oldkey = key; です (とわたしは思っています)。 ところで、「RFC 検索」に RFC の日本語訳へのリンク機能を追加しました。 http://X68000.q-e-d.net/~68user/rfc/?key=http&target=title |
|
>>4259 68user お礼だけで、確認結果を報告せず申し訳ありません。 > とするのが一般的。しかし手抜きするなら以下のような方法も。 > % find . -type f -ls | grep "`date '+%b %d'`" で試してみました。 確かに、本日作成のファイルが表示されました。 date '+%b %d'でgrepをしているため、1年前の同じ日付のものが表示 されます。 |
|
>>4260 みのさん > date '+%b %d'でgrepをしているため、1年前の同じ日付のものが表示 > されます。 なるほど。 本日の分は Aug 16 02:16 昨年以前は Aug 16 2004 などと表示されるので、 % find . -type f -ls | grep "`date '+%b %d'` [0-9][0-9]:[0-9][0-9]" とかですかね。 とはいえ所詮は手抜きな方法なのでおすすめはしません。 |
|
>>4261 68user >とはいえ所詮は手抜きな方法なのでおすすめはしません。 > % find . -type f -ls | grep "`date '+%b %d'` [0-9][0-9]:[0-9][0-9]" >とかですかね。 手抜きとは言っても期待した結果は得られました。 |
|
今日から仕事復帰しました。m(_ _)m >>4250 68user >unsetenv LC_ALL には意味がないので、 > env LC_ALL= LANG=ja_JP.PCK ... > とすれば直ると思います。 確認させて下さい。 具体的には、下記のようにすれば良いという事でしょうか? -----wrapper.sh------------------ #!/bin/sh -fx exec env LC_ALL= LANG=ja_JP.PCK /disk01/hoge/hoge01/sh/FNC0123.csh -----FNC0123.csh------------------ #!/usr/bin/csh #コメントアウトunsetenv LC_ALL ・・・ ---------------------------------- 以上、宜しくお願い致します。 |
|
>>4263 まつ > 具体的には、下記のようにすれば良いという事でしょうか? その通りです。 |
|
こんにちわ。19日はお休みを頂いておりました。 >>4264 68user 御礼が遅くなりました。 有り難う御座いました。m(_ _)m |
|
リダイレクションの操作について教えて下さい。 環境は、Solaris8、シェルは、shです。 file1.txtファイルは存在。 file2.txtファイルは存在しません。 の状況で、lsの結果をリダイレクションを使ってファイルに出力 しています。 ls -l text1.txt text2.txt > kekka.txt 2>&1 標準出力と標準エラーを、kekka.txtファイルに出力。 ls -l text1.txt text2.txt 2>&1 > kekka.txt 標準出力のみ、kekka.txtに出力。 ls -l text1.txt text2.txt 2>&1 2> kekka.txt 標準エラーのみ、kekka.txtに出力。 ls -l text1.txt text2.txt 2>&1 >&kekka.txt 標準出力と標準エラーを、kekka.txtファイルに出力。 何故なのでしょうか。 ls -l file1.txt file2.txt 1>&2 2>&kekkat.xt sh kekka.txt: ambiguous redirect 何故なのでしょうか。 |
|
>>4266 つ No.4266の書込み内容が間違っていました。名前も中途半端です。 訂正も含め再書込みします。 リダイレクションの操作について教えて下さい。 環境は、Solaris8、シェルは、shです。 file1.txtファイルは存在。 file2.txtファイルは存在しません。 の状況で、lsの結果をリダイレクションを使ってファイルに出力 しています。 ls -l file1.txt file2.txt > kekka.txt 2>&1 標準出力と標準エラーを、kekka.txtファイルに出力。 ls -l file1.txt file2.txt 2>&1 > kekka.txt 標準出力のみ、kekka.txtに出力。 ls -l file1.txt file2.txt 2>&1 2> kekka.txt 標準エラーのみ、kekka.txtに出力。 ls -l file1.txt file2.txt 2>&1 >&kekka.txt 標準出力と標準エラーを、kekka.txtファイルに出力。 何故なのでしょうか。 ls -l file1.txt file2.txt 1>&2 2>&kekkat.xt sh kekka.txt: ambiguous redirect 何故なのでしょうか。 |
|
便利なページありがとうございます。 http://x68000.q-e-d.net/~68user/net/http-auth-2.html の > 「A1のMD5値 + nonce値 + ":" + nc値 + ":" cnonce値 + ":" + qop値 + A2のMD5値」の MD5 値 ですが、 正しくは、 「A1のMD5値 + ":" + nonce値 + ":" + nc値 + ":" cnonce値 + ":" + qop値 + ":" + A2のMD5値」の MD5 値 だと思います。 |
|
>>4267 つよし とりあえずこれを読んでください。 http://X68000.q-e-d.net/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8 以下、手元に bash しかないため、sh では試していません。 間違いがあれば補足願います>Solaris な方 > ls -l file1.txt file2.txt 2>&1 >&kekka.txt > 標準出力と標準エラーを、kekka.txtファイルに出力。 > 何故なのでしょうか。 そもそもこれは冗長です。 >&kekka.txt だけで標準出力と標準エラー出力が kekka.txt にリダイレクトされます。 sh において (csh も同じですが)、 >&ファイル名 は、標準出力と標準エラー出力をまとめてファイルにリダイレクトするもの だからです。 > ls -l file1.txt file2.txt 1>&2 2>&kekkat.xt > sh kekka.txt: ambiguous redirect > 何故なのでしょうか。 ファイルへのリダイレクトは「>&」ではなく「>」を使うべきだからです。 sh のリダイレクトには以下の 2パターンがあると考えるとよいでしょう。 1. >ファイル名 2. [数字]>&[数字] さらにタイプ量を減らすため、 3. >&ファイル名 (>ファイル名 2>&1 と同じ) という syntax sugar があります。よって、 [数字]>&ファイル名 はおかしいです。とはいえ 1>&ファイル名 は通ってしまいますが。 >>4268 とおりすがり > 正しくは、 > 「A1のMD5値 + ":" + nonce値 + ":" + nc値 + ":" cnonce値 + ":" + qop値 + ":" + A2のMD5値」の MD5 値 ごもっともであります。遅くとも明日までには修正します。 |
|
>>4268 とおりすがり 修正いたしました。ご指摘ありがとうございました。 http://X68000.q-e-d.net/~68user/net/http-auth-2.html http://X68000.q-e-d.net/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/http-auth-2.html |
|
>>4267 つよし >りあえずこれを読んでください。 >http://X68000.q-e-d.net/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8 参考になります。 特に「2>&1」の説明については、「2 の出力先を 1 にマージする」で覚えと説明している 本もありました。 >&kekka.txt については、冗長なんですね。 本来なら、エラーになるはずなの実際には動いているので、おかしいとは 思っていました。 使わない方がよさそうですね。 |
|
>>4271 つよし > 本来なら、エラーになるはずなの実際には動いているので 冗長ですが、エラーではありません。 2>&1 >&kekka.txt は 2>&1 >kekka.txt 2>&1 と同じですが、ひとつのディスクリプタについての複製を複数回行っても 別にエラーにはなりません。 この例では最初の 2>&1 で 2 の出力先が stdout になりますが、後の 2>&1 で 2 の出力先が kekka.txt になり、意味がないだけです。 |
|
>>4272 68user 解説、アドバイスありがとうございます。 |
|
初めて質問させて頂きます。 Solaris9のサーバからmailxコマンド(sendmailを設定済み)を使用してメールサーバ経由で クライアントにE-MAILを送信しようとしています。 問題が一つありまして、クライアントのOUTLOOKで見たとき件名が文字化け してしまいます。 色々調べたところ、sendmailでは文字化けしてしまうのはどうしようもないと 聞きました。 Solaris9でメールを送信できるソフトウェアで件名が文字化けしないようなもの を知っていたら教えて頂けませんか? (メールサーバ側クライアントのメールの設定は変更できません) |
|
>>4275 ひで 普通はプログラム側で MIME エンコードして、sendmail に渡します。 試していませんが、mailx に渡しても多分うまくいくでしょう。 詳しくは http://X68000.q-e-d.net/~68user/webcgi/mail-1.html http://X68000.q-e-d.net/~68user/webcgi/mail-2.html を読んでください。 |
|
UNIX 上のPDFファイルをftp転送してPC上で読み込みたいのですが、 転送後にファイルが壊れているとのことで読み込めません。 何かいい方法はありますでしょうか |
|
>>4277 ろく バイナリモードで転送してますか? |
|
>>4276 # 68user 回答有難うございます。 試してみます。 |