日付コマンドの言語を変更するには?

日付コマンドの言語を変更するには?

vnstatと一緒に使用していますconky。毎月のトラフィックを表示するために、その月を混ぜてvnstat検索grepします。データを収集するコマンドは次のとおりです。

${execi 3600 vnstat -m -i wlan0 | grep "$(date "+%h")" | awk '{print $3 $4}'}

しかし、問題は、そのvnstat月が英語(12月の場合はDec)に返され、dateその月はポルトガル語(Dezembroの場合はDez)に返されることです。

だから私のコマンドは毎月のトラフィックには機能しません。助けが必要ですか?

答え1

重い操作を実行するためにPOSIX準拠のシェルが呼び出されると仮定すると(注:これが行われているかどうかは不明で、状況が異なる場合があります)、次のように動作しLANGます。dateexeci

${execi 3600 vnstat -m -i wlan0 | grep "$(LC_ALL=C date "+%h")" | awk '{print $3 $4}'}

答え2

don't-bother-me-about-localesモードでコマンドを実行するには、環境変数を設定しますLC_ALL。これはすべてのロケールをオーバーライドします。 Do Not Disturb Meロケールはと呼ばれますC(またはPOSIXの同義語です)。

export LC_ALL=C; vnstat -m -i wlan0 | grep "$(date "+%h")" | awk '{print $3 $4}'

これは、すべてのエラーメッセージを英語に、すべての日付を米国の日付に設定し、バイト順に並べ替え、印刷可能な文字をASCIIに設定します。

バラよりLC_*を設定しますが、LC_ALLは設定しません詳細については。

関連情報