68user's page 掲示板

Prev< No. 4241〜4242> Next  [最新発言に戻る] [過去ログ一覧]
No. 4241 # まつ 2005/08/10 (水) 13:47:41
>>4239 68user
/usr/lib/locale/ja_JP.PCK/:を両サーバーで比較しましたが同じでした。

そして上手く行くサーバーでは
        #!/bin/csh
        setenv LANG ja_JP.PCK
        echo "ロードエラーチェックリスト作成処理($0) 開始"
も動作しました。

LANG と LC_* の関係、有り難うございます。勉強になります。
#!/bin/csh -fx
locale
unsetenv LC_ALL
setenv LC_ALL ja_JP.PCK
setenv LANG ja_JP.PCK
unsetenv LC_ALL
locale
env
として、うまくいくサーバーと同じlocaleに出来ましたがそれでも不整合になります。

env実行結果
--上手く行くサーバー-----------------------------------------
HOME=/export/home/adm
HZ=100
LANG=ja_JP.PCK
LOGNAME=adm
MAIL=/var/mail/adm
PATH=/opt/oracle/product/8.1.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:
PS1=#
PWD=/opt/netos/bin
SHELL=/bin/csh
TERM=vt100
TZ=Japan
USER=adm
_INIT_NET_STRATEGY=none
_INIT_PREV_LEVEL=S
_INIT_RUN_LEVEL=3
_INIT_RUN_NPREV=0
_INIT_UTS_ISA=sparc
_INIT_UTS_MACHINE=sun4u
_INIT_UTS_NODENAME=isv1dm10
_INIT_UTS_PLATFORM=SUNW,Ultra-Enterprise-10000
_INIT_UTS_RELEASE=5.8
_INIT_UTS_SYSNAME=SunOS
_INIT_UTS_VERSION=Generic_108528-16
--上手く行かないサーバー-----------------------------------------
HOME=/
HZ=100
LOGNAME=root
PATH=/usr/sbin:/usr/bin:/opt/EMCpower/bin:/etc:/usr/ccs/bin:/usr/local/bin
SHELL=/sbin/sh
TERM=vt100
TZ=Japan
PWD=/opt/netos5/bin
USER=root
LANG=ja_JP.PCK
-----------------------------------------------------------------
この辺の環境が違うのがダメなのでしょうか?

案1はja_JP.PCK ロケールはインストールされており上記でLANGの設定も
出来たので、案からは外れたと思います。

案2ですが、echoをダブルコーテーションで囲むのとシングルコーテーションで
囲むのでは解釈が異なるのですね??  知りませんでした。。

案3ですが、うまくいくサーバーではShift_JISで動作しているので
腑に落ちません。。envの結果に差があるのが原因でしょうか??

文字コードって奥が深いというか複雑というか厄介ですね。。(^^;

No. 4242 # 68user 2005/08/10 (水) 14:07:10
>>4241 まつ
> /usr/lib/locale/ja_JP.PCK/:を両サーバーで比較しましたが同じでした。
そうですか、謎ですね。

> そして上手く行くサーバーでは
>  #!/bin/csh
>  setenv LANG ja_JP.PCK
>  echo "ロードエラーチェックリスト作成処理($0) 開始"
> も動作しました。
それは最初から LC_CTYPE が ja_JP.PCK になっているからではないですか?
LANG・LC_* を全部クリアして、このスクリプトが動きますか? うちの ja_JP.PCK
ロケールがインストールされている Solaris2.6 ではエラーになりました。

> 案3ですが、うまくいくサーバーではShift_JISで動作しているので
> 腑に落ちません。。envの結果に差があるのが原因でしょうか??
ロケールを統一ってのは、例えばログのエンコーディングがばらばら
だったりすると grep するにも面倒でしょ、というレベルの話です。

うまくいかないサーバで、
    #!/bin/csh -f
    echo "ロードエラーチェックリスト作成処理($0) 開始"
のスクリプトを root で
    % env LANG=ja_JP.PCK [スクリプト名]
とすると動くのですよね?

あと、うまくいかないサーバで、
    - root で実行するとエラー
    - user01 で実行するとうまく動く
ということですよね?

root と user01 のログイン後の env 結果を比較してみてはどうですか?

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