不能乘以 bash 中的负一

can't multiply by negative one in bash

我有这个代码:

#!/bin/bash
turn=1

swap_turn() {
    turn=$((expr $turn \* -1))
}

echo $turn

swap_turn

输出是:

1
./program.sh: line 5: expr 1 \* -1: syntax error in expression (error token is "1 \* -1")

而且我无法找出问题所在。为什么它不能将 1 乘以 -1?

这对我有用:

#!/bin/bash
turn=1

swap_turn() {
    turn=$(( $turn * -1))
}

echo $turn

swap_turn
echo $turn

您错误地组合了 $(expr ...)(命令替换)和 $((...))(算术替换);是一个

turn=$(expr $turn \* -1)

或(最好)另一个

turn=$(( turn * -1 ))