expr给出语法错误

时间:2015-08-27 16:23:16

标签: linux bash shell

我正在用bash编写一个简单的脚本:

#!/bin/bash

if [ $# -ne 3 ]; then
        echo "Usage: $0 number1 operator number2"
        exit 1
fi

opt=$2

case $opt in
        +) echo "$1 + $3 = `expr $1 + $3`";;
        -) echo "$1 - $3 = `expr $1 - $3`";;
        /) echo "$1 / $3 = `expr $1 / $3`";;
        x|X) echo "$1 * $3 = `expr $1 * $3`";;
esac

除了x|X之外,所有案例都可以正常工作。为什么我似乎无法理解。

我在运行./script.sh 20 x 3时遇到的错误是:

expr: syntax error
20 * 3 = 

我是bash脚本新手,所以任何人都不知道可以解决这个问题的方法。

1 个答案:

答案 0 :(得分:0)

#!/bin/bash

if [ $# -ne 3 ]; then
        echo "Usage: $0 number1 operator number2"
        exit 1
fi

opt=$2

case $opt in
        +) echo "$1 + $3 = `expr $1 + $3`";;
        -) echo "$1 - $3 = `expr $1 - $3`";;
        /) echo "$1 / $3 = `expr $1 / $3`";;
        x|X) echo "$1 * $3 = `expr $1 \* $3`";;
esac