Date

如何更改日期命令的語言?

  • May 18, 2018

我正在vnstatconky. 為了顯示我正在混合的每月流量vnstatgrep找到月份。收集數據的命令是

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

但問題是它vnstat以英語返回月份(Dec 為 12 月)並date以葡萄牙語返回(Dez 為 Dezembro)。

所以我的命令不適用於每月流量。有什麼幫助嗎?

您需要導出LANGdate. 假設execi呼叫一個符合 POSIX 標準的 shell 來完成繁重的工作(注意:我不知道它是否這樣做,你的里程可能會有所不同),類似以下的東西應該​​可以工作:

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

要在 don’t-bother-me-about-locales 模式下執行命令,請設置環境變數LC_ALL。這會覆蓋所有區域設置。不要打擾我的語言環境被稱為C(或者POSIX,它們是同義詞)。

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

這會將所有錯誤消息設置為英語,將所有日期設置為美國日期,排序為字節順序,並將可列印字元設置為 ASCII。

有關更多詳細資訊,請參閱設置 LC_* 但不是 LC_ALL

引用自:https://unix.stackexchange.com/questions/58233