이전 날짜를 쉘 스크립트에 인수로 전달

이전 날짜를 쉘 스크립트에 인수로 전달

이전 날짜를 명령줄 인수로 전달하여 스크립트를 실행해야 합니다. 자동화되어야 합니다. 그렇다면 이전 날짜를 스크립트에 어떻게 전달합니까?

예를 들어:

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에서는 dateGNU coreutils를 사용합니다.

YESTERDAY="$(date -d-1day +%Y-%m-%d)"
sh processFile.sh $YESTERDAY $YESTERDAY

관련 정보