你如何添加位置参数?

时间:2011-12-09 03:43:37

标签: bash

我正在尝试编写一个简单的bash脚本,它接受两个参数并对它们求和。我该如何解决这个问题?

#!/bin/bash
add = $(($1+$2))
echo Addition       : $add

# sample 7 15

2 个答案:

答案 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"