이전 날짜를 명령줄 인수로 전달하여 스크립트를 실행해야 합니다. 자동화되어야 합니다. 그렇다면 이전 날짜를 스크립트에 어떻게 전달합니까?
예를 들어:
sh processFile.sh previousdate previousdate
답변1
GNU 사용 date
:
previousdate=$( date -d 'yesterday' +'%F' )
sh processFile.sh "$previousdate" "$previousdate"
macOS의 경우 date
:
previousdate=$( date -j -v -1d +'%F' )
sh processFile.sh "$previousdate" "$previousdate"
답변2
이를 사용하여 전날을 가져와 매개변수로 전달할 수 있습니다.
date +%Y-%m-%d -d "1 day ago"
자세한 내용은 man
분과 초를 조작할 수 있는 페이지를 참조하세요.date
답변3
이것은 작동합니다:
sh processFile.sh "$(date +"%Y-%m-%d" -d "yesterday")" "$(date +"%Y-%m-%d" -d "yesterday")"
답변4
존재하다오픈BSD,FreeBSD와 맥OS그리고BSDdate
, Illumos 및 기타 비 GNU 시스템:
YESTERDAY="$(date -r $(expr $(date +%s) - $(expr 60 \* 60 \* 24)) +%Y-%m-%d)"
sh processFile.sh $YESTERDAY $YESTERDAY
GNU/Linux에서는 date
GNU coreutils를 사용합니다.
YESTERDAY="$(date -d-1day +%Y-%m-%d)"
sh processFile.sh $YESTERDAY $YESTERDAY