ls を走らせてその出力を利用するソフトウェアは、ls 起動時に LC_TIME=C あるいは LC_ALL=C するなど、適切な処置を講じるべきです。
ls の出力形式に頼ったプログラミングをしていて誤動作を招くのは、日本ロケールだけではなく、世界中に共通する問題です。たとえ日本ロケールのみ、ls の時間表記を変えないことにしても、それを期待して作ったプログラムは日本以外で動かなくなってしまいます。また、IRIX や Solaris の動作を変更させるよう働きかけることはできないと思うので、やはり ls の時間表記に頼ったプログラミングは、するべきではありません。
また、問題は ls の時間表記だけにとどまらず、「not found」などのメッセージもその対象となります。もし ls の時間表記はロケールで不変であるべきとするなら、そういったメッセージも不変であるべきということになってしまいます。
表記はascii文字だけが良い (スコア:1)
termが合わせられない場合に,localeが日本語になっていると"ls -l"の表記に表示されない文字(日本語の"月"とか"日"ね)が文字化けする訳ですが,remoteからアクセスしてメンテする場合に気になることがありますね.
いつでもascii文字だけの方が,他のエラーかと気にならなくてグーだと思います
kero
Re:表記はascii文字だけが良い (スコア:2)
Re:表記はascii文字だけが良い (スコア:3, すばらしい洞察)
ls を走らせてその出力を利用するソフトウェアは、ls 起動時に LC_TIME=C あるいは LC_ALL=C するなど、適切な処置を講じるべきです。
ls の出力形式に頼ったプログラミングをしていて誤動作を招くのは、日本ロケールだけではなく、世界中に共通する問題です。たとえ日本ロケールのみ、ls の時間表記を変えないことにしても、それを期待して作ったプログラムは日本以外で動かなくなってしまいます。また、IRIX や Solaris の動作を変更させるよう働きかけることはできないと思うので、やはり ls の時間表記に頼ったプログラミングは、するべきではありません。
また、問題は ls の時間表記だけにとどまらず、「not found」などのメッセージもその対象となります。もし ls の時間表記はロケールで不変であるべきとするなら、そういったメッセージも不変であるべきということになってしまいます。
Re:表記はascii文字だけが良い (スコア:0)
# SunOS4 の ls -l のフォーマットを期待してると以下略。
Re:表記はascii文字だけが良い (スコア:1)
// kraymor
Re:表記はascii文字だけが良い (スコア:2)
-- wanna be the biggest dreamer
Re:表記はascii文字だけが良い (スコア:1)
Re:表記はascii文字だけが良い (スコア:0)
特に、ls はそういう風に使われることを想定してないし、
そういう風に使った場合には全くポータビリティが無い。
そういう要素があるから「ダサい」と言ってるんだし、
そういう要素を無視して再利用すべし、というのは、むしろ有害。
Re:表記はascii文字だけが良い (スコア:1)
ただ,lsの出力を使うプログラム全部(ポータビリティの関係のないお気楽シェルプログラミングのようなものまで)を「ダサい」と否定しているような印象をうけたので,それは了見が狭いと思っただけ.
// kraymor
Re:表記はascii文字だけが良い (スコア:0)
気のせいです。