Я пишу bash-скрипт для проверки некоторых данных.Я создал переменную для хранения вывода оператора SQL:
$ declare -p data_ck
declare -- data_ck="2019-02-17 TRUE 2019-02-10 23"
Я предполагаю, что моя переменная data_ck на самом деле является просто строкой, а не массивом, который я могуразбирать на поля.Итак, я затем выяснил этот синтаксис: echo ${data_ck[@]:27:2}
, который возвращает «23» в этом случае.
Я также мог бы использовать: echo "${data_ck[@]: -2:2}"
Я хочуопределить, равен ли мой последний элемент, 23, 30. Я пробовал разные варианты этого оператора, но безуспешно:
If [ ${data_ck[@]:27:2} != 30 ]; then echo "missing dates"
, который возвращает: -bash: синтаксическая ошибка рядом с неожиданным токеном `then '
Я получаю тот же результат, используя этот метод:
If [ ${data_ck[@]:27:2} -ne 30 ]; then echo "missing dates" fi
Я только немного знаком со сценариями и не понимаю, что я делаю неправильно.Может кто-нибудь протянуть руку?Спасибо!