#!/bin/bash
if [ $# -lt 3 ] ;then
echo "USAGE : calculate.sh VAR1 OPERATOR VAR2"
exit 1
fi
VAR1=$1
OP=$2
VAR2=$3
if [ $OP = '+' ];then
echo "$VAR1+$VAR2=$[$VAR1+$VAR2]"
exit 0
elif [ $OP = '-' ];then
echo "$VAR1-$VAR2=$[$VAR1-$VAR2]"
exit 0
elif [ $OP = '*' ];then
echo "$VAR1*$VAR2=$[$VAR1*$VAR2]"
exit 0;
else
echo "$VAR1/$VAR2=$[$VAR1/$VAR2]"
fi
以上是calculate.sh
的内容。
如果我使用 +
、-
或 /
,我会得到正确的答案,但是当我使用 *
,报错:
kdyzm@kdyzm:~/scripts$ ./calculate.sh 2 + 3 2+3=5 kdyzm@kdyzm:~/scripts$ ./calculate.sh 2 - 3 2-3=-1 kdyzm@kdyzm:~/scripts$ ./calculate.sh 2 * 3 ./calculate.sh: line 21: 2/command.sh: syntax error: invalid arithmetic operator (error token is ".sh") kdyzm@kdyzm:~/scripts$ ./calculate.sh 2 / 3 2/3=0 kdyzm@kdyzm:~/scripts$
我该如何解决这个问题?
最佳答案
当你想传递一个*
时,你必须引用参数:
./calculate.sh 2 \* 3
关于linux - 不能在算术表达式中使用乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35153561/