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
ます。date
execi
${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は設定しません詳細については。