- 締切済み
コマンドプロンプトとシェルでの実行結果の違い
OS:Redhat AS v4.0 /etc/init.d/配下の実行ファイルをスクリプトの中で呼び出して いますが、何故かスクリプト実行時と個々のコマンドで実行した時と アプリの文字コードが違いますが、何が原因なのでしょうか? コマンドプロンプトで実行した時:(文字コード)正常 root#/etc/init.d/xxx restart スクリプト経由で実行時:(文字コード)異常root#/opt/tools/script.sh ※スクリプトで/etc/init.d/xxx restart を呼び出すます。。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
#3です。 このスクリプト中の /etc/init.d/apache restart で出力されるメッセージと、直接 /etc/init.d/apache restart だけシェルプロンプトから実行した場合で、出力されるメッセージが異なると言うことですよね? 見た限り動作環境に影響を与える部分は無いので、何らかの勘違いがどこかにあると思われますが、これだけの情報からではちょっと推測できません。
- notnot
- ベストアンサー率47% (4900/10358)
script.shの内容を全部書いてください。
補足
Scriptの内容です。 ========= #!/bin/sh # Script Start LOGFILE=/opt/service/`date +%Y%m%d`.log echo "INFO Script <$0> START. 0" >>$LOGFILE # Check service status ps -ef |grep apache STATUS=$? if [ $STATUS != 0 ]; then echo "ERROR apacheサービスは停止されています。" >>$LOGFILE exit 1 fi # Restart service /etc/init.d/apache restart R_STAT=$? if [ $R_STAT = 0 ]; then echo "INFO apacheサービスは正常に再起動しました。" >>$LOGFILE else echo "ERROR apacheサービスは正常に再起動出来ませんでした。" >>$LOGFILE fi # Script end echo "INFO Script <$0> END." 0 >>$LOGFILE exit 0
- toro777777
- ベストアンサー率16% (43/257)
>スクリプトでの実行=>UTF-8以外の文字コード 常識で考えてそりゃ文字化けするよね。 EUCコードのテキストファイルをWinodwsのメモ帳で 開いて文字化けすると騒いでいるのと同レベル。
お礼
ありがとうございます。 すみません、初心者であまり理解出来ておりません。。 もう少し分かりやすく説明して頂けるとありがたいのですが。。。
- toro777777
- ベストアンサー率16% (43/257)
>(文字コード)異常root#/opt/tools/script.sh どの環境でどの文字コードで作られたスクリプトですか? 現在のRedhat/Fedora系はEUCコードではなくてUTF-8だったはずです。
補足
Rootユーザ環境で、文字コードはUTF-8です。 コマンドプロンプト実行=>UTF-8 スクリプトでの実行=>UTF-8以外の文字コード
補足
はい。直接/etc/init.d/apache restart 実行だと日本語のログメッセージも正常に表示されますが、 スクリプト中の再起動しますと、日本語が文字化けになってしまいます。 他に回避方法があるかどうか調べてみます。 ありがとうございました。