我正在尝试编写一个简单的bash脚本,它接受两个参数并对它们求和。我该如何解决这个问题?
#!/bin/bash
add = $(($1+$2))
echo Addition : $add
# sample 7 15
答案 0 :(得分:4)
只需删除'='之前和之后的'空格'即可。
add = $(($1+$2))
to
add=$(($1+$2))
所以你的完整pgm将是这样的
#!/bin/bash
add=$(($1+$2))
echo Addition : $add
# sample 7 15
答案 1 :(得分:4)
正如他们正确指出的那样,你的问题是=
标志周围的空间。执行变量赋值时,等号周围不应有空格。
#!/bin/bash
TOTAL=$(($1 + $2))
echo "Addition : $TOTAL"
或简单地说:
#!/bin/bash
echo "Addition : $(($1 + $2))"
顺便说一下,脚本的其他替代方法包括使用let
bash内置命令,这对于简单的算术运算非常有用:
#!/bin/bash
let "TOTAL = $1 + $2"
echo "Addition : $TOTAL"
或c-style variable manipulation within double parentheses:
#!/bin/bash
(( TOTAL = $1 + $2 ))
echo "Addition : $TOTAL"