- PR -

crontab実行時の表示

1
投稿者投稿内容
ネ音
会議室デビュー日: 2004/12/10
投稿数: 17
投稿日時: 2005-01-18 14:06
スクリプト、diff.shの内容が、
diff -sq file1 file2 > file3
とします。(ディレクトリは省略)
RedHat Linuxで、gnome-terminalから、source diff.sh
を実行した後、file3を開けると、
file1とfileは同一です
とか
file1とfileは違います
とか日本語で表示されます。

このスクリプトをcrontabで設定して自動実行させると、file3は、
file1 & fili2 are identical
とか
file1 & fili2 differ
とか英語で表示されます。

crontabでの実行時に日本語で表示させるにはどう記述すれば良いでしょうか?
よろしくお願いします。
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-01-18 14:07
そのscriptの中でLANGとか設定してもダメですか?
NeXT
大ベテラン
会議室デビュー日: 2004/04/06
投稿数: 215
お住まい・勤務地: 江戸
投稿日時: 2005-01-18 14:43
/usr/bin/env を使ってみては如何でしょうか。
env(1) も参照してみてください。
ネ音
会議室デビュー日: 2004/12/10
投稿数: 17
投稿日時: 2005-01-18 15:31
ご回答ありがとうございます。

スクリプトを
@
#!/bin/bash
LANG=ja_JP.eucJP
diff -sq file1 file2 > file3
A
#!/bin/bash
/usr/bin/env LANG=ja_JP.eucJP
diff -sq file1 file2 > file3
B
#!/bin/bash
setenv LANG ja_JP.eucJP
diff -sq file1 file2 > file3

の3パターンで編集して試しましたが英語表示のままでした。
引き続き調査しますが、何か御座いましたらお願いします。
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-01-18 16:01
私は普段からlocaleはCなんで、あまりscript内で書いたこと無いのですが。
bashならexport LANGしないとダメかもしれません。
ネ音
会議室デビュー日: 2004/12/10
投稿数: 17
投稿日時: 2005-01-18 16:11
ご回答ありがとうございます。

#!/bin/bash
export LANG=ja_JP.eucJP
diff -sq file1 file2 > file3

で日本語表示できました。感謝です。
NeXT
大ベテラン
会議室デビュー日: 2004/04/06
投稿数: 215
お住まい・勤務地: 江戸
投稿日時: 2005-01-18 16:46
env(1) を使う場合は

#!/bin/bash
/usr/bin/env LANG=ja_JP.eucJP
diff -sq file1 file2 > file3

ではなく

#!/bin/bash
/usr/bin/env LANG=ja_JP.eucJP \ <- 継続を示すバックスラッシュ
diff -sq file1 file2 > file3

か,

#!/bin/bash
/usr/bin/env LANG=ja_JP.eucJP diff -sq file1 file2 > file3 <- 一行で記述。

とする必要があるかと思います。


ちなみに 3) の場合は シェルを /bin/csh にしてあげると動くかもしれません。
久しく csh は使っていないので csh(1) も参照してみてください。また環境に
よっては csh は tcsh になっているかもしれません。

1

スキルアップ/キャリアアップ(JOB@IT)