我想要一个脚本来计算用户输入的数字的总和。
到目前为止我有:
#!/bin/bash
add() {
sum=0
for num
do
sum=$((sum +num))
done
}
echo "$sum"
我使用的命令是:
add 4 -3 9 12
返回是: 空行 - 不是单词只是空行 username~/folder:>
我缺少什么?
权限是rwxr xr x
我正在使用路径中的文件夹运行交互式 shell,我不知所措。
答案1
让我们稍微修改一下你的脚本:
$ cat add.sh
#!/bin/bash
add() {
sum=0
for num
do
sum=$((sum +num))
done
}
add "$@"
echo "sum=$sum"
现在,让我们运行该脚本:
$ bash add.sh 4 -3 9 12
sum=22
有用。
唯一的变化是我们通过add "$@"
before echoing调用了您的函数sum
。
答案2
只是为了包括实际的简单的方法来做到这一点:
#!/bin/bash
IFS=+
bc <<< "$*"
并使用它(当在您具有执行权限的文件中调用时add.sh
):
$ ./add.sh 4 -3 9 12
22
$
~/.bashrc
或者只是将其定义为您或您正在编写的较大 bash 脚本中的函数:
add() (
IFS=+
bc <<< "$*"
)