매월 첫 번째 목요일에 실행되지 않는 Bash 조건

매월 첫 번째 목요일에 실행되지 않는 Bash 조건

일주일에 두 번(월요일/목요일) 스크립트를 실행하는 크론이 있습니다. 이 방법은 잘 작동하지만 매월 첫 번째 목요일에 처리를 중지해야 합니다.

이 코드를 조정하고 싶습니다.

we=$(LC_TIME=C date +%A)
dm=$(date +%d)
if [ "$we" = "Thursday" ] && [ "$dm" -lt 8 ]
then 
    .....
fi

=를 !=로 변경한다고 가정하고 있는데, 알아야 할 문제가 있는지 궁금합니다.

문제(위 코드를 어디서 얻었는지)는 다음과 같습니다.내가 원하는 것과 반대- 실제로 이 질문에 대한 답변에 의견을 추가하고 싶지만 50명의 담당자가 필요합니다.

답변1

Bash를 사용하여 테스트합니다.

if [[ "$(LC_TIME=C date +%A)" == 'Thursday' && "$(date +%d)" -le 7 ]]; then
    exit 1
fi

참고: 기능적으로 이는 귀하의 질문에 있는 테스트와 다르지 않습니다.

스크립트 상단에 추가하기만 하면 됩니다. 매월 첫 번째 목요일이면 스크립트가 즉시 종료되고, 그렇지 않으면 실행됩니다.

또는 crontab 항목에 직접 넣을 수도 있습니다. 예를 들면 다음과 같습니다.

0 1 * * 1,4 [[ "$(LC_TIME=C date +\%A)" == 'Thursday' && "$(date +\%d)" -le 7 ]] || /path/to/script.sh

관련 정보