首页 > 解决方案 > bash脚本将整数作为参数并添加它们

问题描述

所以我在这里有这个代码:

    #!/bin/bash
sum=0
for i;
do 
   if [ "$i" -ge 0 ]
   then
       sum=$((sum + i))
   else
       sum=$((sum + (i * -1)))
   fi
done
echo $sum

所以用户输入 blin.sh 1 3 2 5 -5 -8,程序应该取所有的整数,如果是负数,则将它们设为正数,然后回显总和。但是我的 bash 代码由于某种科学未知的原因只回显了 0。

标签: pythonlinuxbashubuntuscripting

解决方案


这是您的脚本的示例。

#!/bin/bash

sum=0
for i ; do
   if [ "$i" -ge 0 ]
   then
      sum=$((sum + i))
   else
      sum=$((sum + (i * -1)))
   fi
done
echo $sum

脚本的名称是foo.sh,现在使用参数执行该脚本。

./foo.sh  1 3 2 5 -5 -8

输出

24

使用sh

sh ./foo.sh  1 3 2 5 -5 -8

输出

24

使用dash

dash ./foo.sh  1 3 2 5 -5 -8

输出

24

使用zsh

zsh ./foo.sh  1 3 2 5 -5 -8

输出

24

我在那里看不到任何错误。


推荐阅读