Укажите предыдущую дату в качестве аргумента сценария оболочки

Мне нужно выполнить сценарий, передав предыдущую дату в качестве аргумента командной строки. Это нужно автоматизировать. Итак, как я могу передать в сценарий предыдущую дату?

Например:

sh processFile.sh previousdate previousdate
0
28.02.2017, 12:00
5 ответов

это будет работать:

sh processFile.sh "$(date +"%Y-%m-%d" -d "yesterday")"  "$(date +"%Y-%m-%d" -d "yesterday")"
0
28.01.2020, 02:34

Извините, получил ответ. Публикация о том, что это кому-то поможет. Это можно сделать так:

sh getDate.sh "$(date --date="-1 day" +%Y-%m-%d)" "$(date --date="-1 day" +%Y-%m-%d)"
0
28.01.2020, 02:34

С GNU дата :

previousdate=$( date -d 'yesterday' +'%F' )
sh processFile.sh "$previousdate" "$previousdate"

С macOS дата :

previousdate=$( date -j -v -1d +'%F' )
sh processFile.sh "$previousdate" "$previousdate"
2
28.01.2020, 02:34

Вы можете использовать это, чтобы получить предыдущий день и передать его в качестве аргумента:

 date +%Y-%m-%d -d "1 day ago"

для получения дополнительной информации обратитесь к man странице date , чтобы даже управлять минутами и секундами.

0
28.01.2020, 02:34

На OpenBSD , FreeBSD и MacOS с BSD date, а также на 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
0
28.01.2020, 02:34

Теги

Похожие вопросы