Следующий код:
weekday=$(date +%a)
day=$(date +%d)
month=$(date +%m)
if [[ ( $month == 03 || $month == 10 ) && $weekday = "Sun" && $day > 24 ]]
then
# DO SOMETHING
exit 1
else
# DO SOMETHING
fi
приводит к ошибке:
8: Syntax error: word unexpected (expecting ")")
w курица выполняется с:
/bin/sh script.sh
Что здесь не так и как это исправить?
Мне нужно использовать sh, как мне нужно изменить этот код, чтобы начать работать с sh?
weekday=$(date +%a)
day=$(date +%d)
month=$(date +%m)
if [ \( \( $month -eq 03 \) -o \( $month -eq 10 \) \) -a \( "$weekday" = "Sun" \) -a \( $day -gt 24 \) ]
then
# DO SOMETHING
echo ok
else
# DO SOMETHING
echo ko
fi
Правильный способ:
weekday=$(date +%a)
day=$(date +%d)
month=$(date +%m)
if { [ $month -eq 03 ] || [ $month -eq 10 ]; } && [ $weekday = "So" ] && [ $day -gt 24 ]
then
echo "true"
else
echo "false"
fi