不能乘以 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 ))
我有这个代码:
#!/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 ))