我正在尝试将一个数字作为输入并将所有数字添加回1,以便脚本显示总数。例如。如果5是参数,它将执行1 + 2 + 3 + 4 + 5给出15的答案。任何帮助?
这是我目前的代码:
num1=$1
#adder=1
function total()
{
while [[ $num1 -gt 0 ]]
do
addop=$((num1 + (num1-1)))
counter=$((num1--))
done
echo $addop
}
total $1
答案 0 :(得分:0)
您的脚本不起作用,因为addop设置为不是运行总计,而是设置为num1和num1-1的总和,它在循环的出口处始终为“1”。要修复它,使addop等于num1和它自己,如下所示
if (P[x]=="zika") to if(P[x].equals("zika") )
答案 1 :(得分:0)
对于踢,一个递归函数:
total() { [[ $1 -eq 1 ]] && echo 1 || echo $(($1 + $($FUNCNAME $(($1-1)) ) )); }
几乎可以保证更慢!并增加了内存资源!
答案 2 :(得分:0)
如何使用{1..n}
扩展
#!/bin/bash
eval echo {1..${1}} | tr ' ' '+' | bc
工作原理
> echo {1..5}
1 2 3 4 5
> echo {1..5} | tr ' ' '+'
1+2+3+4+5
> echo {1..5} | tr ' ' '+' | bc
15
所以我们要做的就是动态评估大括号中的第二个参数。
注意:bc
是命令行的计算器应用程序(应该安装)。