У меня есть 3 параметра даты «30 сентября, понедельник» (месяц, номер дня, день), и я хочу создать сценарий оболочки, который показывает количество дней, оставшихся до 30 сентября, понедельник.
Как мне это сделать?
Я предполагаю, что вы хотите рассчитать количество дней до ближайшего дня, который будет 30 сентября в понедельник, будь то в любом году. этот скрипт работает для меня (вы можете изменить «понедельник» в условии на другой день недели, то же самое с другими днями / месяцами. Скрипт определяет, какой год сейчас, и отсчитывает оттуда. Он использует однострочник из ссылка на поток переполнения стека по вашему вопросу
YEAR=$(date +%Y)
DAY=$(date -d "30 SEP $YEAR" +%A)
until [[ $DAY == "Monday" ]]
do
YEAR=$(($YEAR+1))
DAY=$(date -d "30 SEP $YEAR" +%A)
done
echo $(expr '(' $(date -d $YEAR/9/30 +%s) - $(date +%s) + 86399 ')' / 86400) " days until deadline"