변수를 사용하여 다음 영업일 구하기

변수를 사용하여 다음 영업일 구하기

스크립트에 의해 생성된 날짜에서 다음 근무일을 추출하여 변수에 할당하고 싶습니다.last_day

변수 last_day에 값이 있다고 가정하면 then 의 if 값을 last_day=20190426얻고 싶습니다 . 시나리오는 last_day가 금요일이면 next_day를 월요일로 인쇄하고, 그렇지 않으면 다음 날 날짜를 인쇄하는 것입니다.next_day=2019-04-29last_day=2019-04-17next_day=2019-04-18

아래 명령을 변수와 함께 작동시키는 방법을 잘 모르겠습니다.

date +%Y-%m-%d -d "+$(( ( $(date +%w)==5 )?3:1 )) days"

이것을 시도했지만 작동하지 않습니다.

next_day=$(date +%Y-%m-%d -d "+$(( ( $(${last_day} +%w)==5 )?3:1 )) days")

답변1

이 시도,

 last_day=20190426
 date -d "$last_day +$( if [ `date -d $last_day +%w` == 5 ]; then echo 3; elif [ `date -d $last_day +%w` == 6 ]; then echo 2; else echo 1; fi ) days" +"%Y%m%d"

입력은 언제든지 가능합니다. 그래서

  • 입력한 내용이 주 5일(금요일)인 경우 3개가 추가됩니다.
  • 입력한 내용이 6번째(토요일)요일인 경우 2개가 추가됩니다.
  • 그렇지 않으면 다른 모든 요일에 대해 1을 추가하십시오.

관련 정보