Иногда я сталкиваюсь с проблемой при вычислении операции самоинкрементного ++ с константой, поведение которой меня утомляет.(Это не исходные коды, я просто скопировал похожие строки)
#!/bin/bash
echo "out1="$((++5))
echo "out2="$((5++))
Фрагмент кода выглядит примерно так;когда я его выполнил, я получил следующий результат:
$ bash test.sh
out1=5
test.sh: line 3: 5++: syntax error: operand expected (error token is "+")
Версия bash: GNU bash, версия 4.2.46 (2) -релиз (x86_64-redhat-linux-gnu)
Я хочу знать:
- почему нет синтаксической ошибки для оператора предварительного увеличения?
- почему операция постинкремента возвращает значение 5, отличное от 6.
Спасибо.