У меня сейчас проблема, которую я не могу решить. Написание bash скрипта на Ма c ОС Каталина. L oop проходит через утверждение правды, но, столкнувшись с ложным утверждением, оно застряло на нем.
Задание % Сделайте что-нибудь% , если текущий день в oop - рабочий день.
Код
# Set initial dates
starting_date=2020-02-10
ending_date=2020-02-24
current_date=$starting_date
#What is the day of the week of this day
current_date_wd=$(date -j -f "%Y-%m-%d" "$current_date" +%u )
#Loop in the set date range
while [ "$current_date" != "$ending_date" ];
do
if [ "$current_date_wd" != "6" ] && [ "$current_date_wd" != "7" ]
then
# Echo the current workday
echo 'Today is '$current_date' and it-s a '$current_date_wd'-s day'
# Increment by 1d
current_date=`date -j -v +1d -f "%Y-%m-%d" "$current_date" +%Y-%m-%d`
# Calculate day of week
current_date_wd=$( date -j -f "%Y-%m-%d" "$current_date" +%u )
else
# Increment
current_date=`date -j -v +1d -f "%Y-%m-%d" "$current_date" +%Y-%m-%d`
# Skip
echo 'skip'
continue
fi
done
Первая часть вывода верна. L oop проходит через дни и показывает сообщение. Но после выполнения ложного условия l oop не go возвращается для проверки заявления. Вывод
Today is 2020-02-10 and it-s a 1-s day
Today is 2020-02-11 and it-s a 2-s day
Today is 2020-02-12 and it-s a 3-s day
Today is 2020-02-13 and it-s a 4-s day
Today is 2020-02-14 and it-s a 5-s day
skip
skip
skip
skip
skip
skip
skip
skip
skip
Ожидается
Today is 2020-02-10 and it-s a 1-s day
Today is 2020-02-11 and it-s a 2-s day
Today is 2020-02-12 and it-s a 3-s day
Today is 2020-02-13 and it-s a 4-s day
Today is 2020-02-14 and it-s a 5-s day
skip
skip
Today is 2020-02-17 and it-s a 1-s day
Today is 2020-02-18 and it-s a 2-s day
Today is 2020-02-19 and it-s a 3-s day
Today is 2020-02-20 and it-s a 4-s day
Today is 2020-02-21 and it-s a 5-s day
skip
skip
Почему «продолжить» не работает?