저는 월요일부터 금요일까지 매일 아침 백업 파일이 있는지 확인하는 스크립트를 작성하고 있습니다. 이러한 백업 파일은 월요일부터 금요일까지 매일 마지막 시간에 저장되며 간단히 이름이 지정됩니다.
02_10_15
문제가 있습니다. 월요일에 스크립트를 실행하면 다음과 같이 표시됩니다.
09_10_15
파일 이름이 다음과 같기 때문에 파일을 찾을 수 없습니다.
06_10_15
어제 대신
08_10_15
아래에서 내 날짜 코드를 찾아보세요.
#Create variables
yday=$(date --date yesterday +"%d_%m_%y")
#yday="02_10_15"
FileName=$(date --date yesterday +"%Y%m%d")
지난 금요일 월요일 특별한 날짜를 어떻게 알 수 있나요?
답변1
unset mon
[ $(date +%u) -eq 1 ] && mon='Fri'
yday=$(date --date="last ${mon}day" +"%d_%m_%y")
따라서 date +%u
생산이 월요일에 이루어 1
지면 변수는 다음으로 mon
설정됩니다 .Fri
- 날짜문자열은 입니다 last Friday
. 그렇지 않으면 설정되지 않은 상태로 유지됩니다 last day
( mon
비어 있음).
답변2
정보 페이지에 따르면 GNU는 date
사용할 수 있는 다른 형식을 허용합니다. 예는 다음과 같습니다.
FileName=$(date --date '1 day ago' +"%Y%m%d")
FileName=$(date --date 'last Friday' +"%Y%m%d")
그러나 "마지막 근무일" 또는 "주의 마지막 날"과 같은 변형은 지원하지 않는 것 같습니다. 스크립트를 주중(월요일~금요일)에만 실행해야 하거나 공휴일을 고려하는 경우 이 작업을 수행하려면 여러 줄이 필요합니다.