날짜 명령의 언어를 변경하는 방법은 무엇입니까?

날짜 명령의 언어를 변경하는 방법은 무엇입니까?

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은 설정하지 않음자세한 내용은.

관련 정보