#!/bin/bash
a=${2}
b=${1}
let "c=b+a"
echo $c
脚本使用commad ./scriptname arg1 arg2执行 其中arg1和arg2是在运行脚本时传递的整数类型。
答案 0 :(得分:2)
要总结任意数量的参数,请考虑以下脚本:
$ cat ./sum
#!/bin/sh
( IFS=+; echo "$*" | bc ; )
例如:
$ ./sum 2 4
6
$ ./sum 2 4 2 8
16
注意:
构造$*
返回脚本的所有参数,由变量IFS
中的第一个字符分隔。默认情况下,IFS中的第一个字符是空格,因此,例如:
$ echo "$*"
2 4 2 8
但是,我们想要指出添加,所以我们设置IFS=+
。因此:
$ ( IFS=+; echo "$*" )
2+4+2+8
后者现在采用适合bc
的形式:
$ ( IFS=+; echo "$*" | bc )
16
因为上面使用了bc
,所以它可以用于浮点数和整数加法。
parens (...)
用于创建子shell。对于显示的简单脚本,这不是必需的。如果实际脚本更复杂,那么将更改保留在IFS
本地可能是有利的。
考虑这个脚本:
$ cat sum2
#!/bin/sh
( IFS=+; echo $(( $* )) )
示例:
$ ./sum2 1 2 4
7
这种方法使用bash的算术$((...))
来进行将其限制为整数的计算。