스크립트에 의해 생성된 날짜에서 다음 근무일을 추출하여 변수에 할당하고 싶습니다.last_day
변수 last_day
에 값이 있다고 가정하면 then 의 if 값을 last_day=20190426
얻고 싶습니다 . 시나리오는 last_day가 금요일이면 next_day를 월요일로 인쇄하고, 그렇지 않으면 다음 날 날짜를 인쇄하는 것입니다.next_day=2019-04-29
last_day=2019-04-17
next_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을 추가하십시오.