expr命令执行期间的错误消息:expr:非整数参数

时间:2013-11-27 01:34:41

标签: bash shell integer echo

我尝试将两个数字(实际上这些是一些远程执行命令的输出)分配给两个不同的变量,比如说A和B.

当我回显A和B时,它们会显示值:

echo $A
809189640755
echo $B
1662145726

sum=`expr $A + expr $B`
expr: non-integer argument

我也尝试过使用typeset -i但是没有用。就像我看到的那样,bash不会将我的变量视为整数。将变量转换为整数的最简单方法是什么,这样我可以对它们进行加,减,乘等等?

感谢。

4 个答案:

答案 0 :(得分:1)

你应该能够做到

expr $A + $B

$(( $A + $B ))

答案 1 :(得分:1)

首先,你不应该使用expr两次。所以

sum=`expr $A + $B`

应该有效。另一种可能是使用管道

sum=`echo "$A + $B" | bc -l`

即使是乘法也应该可以正常工作。我不确定如果你的数字太大,它会如何表现,但是使用你的价值为我工作。

答案 2 :(得分:0)

尝试使用linux bash:

A=809189640755
B=1662145726
echo $((A + B))

答案 3 :(得分:0)

您必须复制并粘贴此代码并运行。希望对您有所帮助。

echo "enter first number"
read num1
echo "enter second number"
read num2
echo $((num1 + num2))

将文件另存为file_name.sh并从终端运行它