我正在vnstat
与 一起使用conky
。为了显示我正在混合的每月流量vnstat
并grep
找到月份。收集数据的命令是
${execi 3600 vnstat -m -i wlan0 | grep "$(date "+%h")" | awk '{print $3 $4}'}
但问题是,vnstat
以英语返回月份(Dec 为 December),并date
以葡萄牙语返回月份(Dez 为 Dezembro)。
所以我的命令不适用于每月的流量。有什么帮助吗?
答案1
您需要导出LANG
到date
.假设execi
调用兼容 POSIX 的 shell 来完成繁重的工作(注意:我不知道它是否这样做,您的情况可能会有所不同),类似以下内容应该可以工作:
${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
。这会覆盖所有区域设置。不要打扰我区域设置被称为C
(或者POSIX
,它们是同义词)。
export LC_ALL=C; vnstat -m -i wlan0 | grep "$(date "+%h")" | awk '{print $3 $4}'
这会将所有错误消息设置为英语,将所有日期设置为美国日期,将排序设置为字节顺序,将可打印字符设置为 ASCII。
看设置 LC_* 但不设置 LC_ALL更多细节。