8: Синтаксическая ошибка: неожиданное слово (ожидается ")")

Следующий код:

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?

0
задан 30 March 2021 в 05:37
2 ответа
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
0
ответ дан 24 April 2021 в 01:40

Правильный способ:

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

ПРОСМОТР: https://stackoverflow.com/a/66865406/14997935

1
ответ дан 24 April 2021 в 01:40

Теги

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