![이전 날짜를 쉘 스크립트에 인수로 전달](https://linux55.com/image/106471/%EC%9D%B4%EC%A0%84%20%EB%82%A0%EC%A7%9C%EB%A5%BC%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20%EC%9D%B8%EC%88%98%EB%A1%9C%20%EC%A0%84%EB%8B%AC.png)
이전 날짜를 명령줄 인수로 전달하여 스크립트를 실행해야 합니다. 자동화되어야 합니다. 그렇다면 이전 날짜를 스크립트에 어떻게 전달합니까?
예를 들어:
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