linux - 无法弄清楚如何在 bash 循环中执行算术 (for)

标签 linux bash unix math scripting

#! /bin/bash
sum=0
for number in $*
do
    x=$(( sum + number ))
    echo $x
done

我只是想创建一个名为“add”的脚本,它会在执行时添加位置参数。它没有添加数字,而是像正常循环一样简单地显示它们。例如

$ add 1 2 3 4 5 6
1
2
3
4
5
6

我做错了什么?

最佳答案

你永远不会更新sum。你是这个意思吗?

sum=0
for number in "$@"; do
  sum=$((sum + number))
  echo "$sum"
done

(echo $sum 如果您只想将最终总和而不是运行总计写入标准输出,则在循环之外。)

关于linux - 无法弄清楚如何在 bash 循环中执行算术 (for),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514360/

相关文章:

PHP count() 将文本数组计为单个元素

swift - 如何通过 NSUserUnixTask 传递参数,然后通过脚本访问?

macos - Mac OSX Unix Bash 脚本将文件夹中的所有文件整理到一个文本文件中,最好在文件顶部有一个标签

c++ - 选择以 libxml2 结尾的行

linux - 使用 sed - shell 脚本将值 append 到变量

Linux - 在 SMP ARM 上的定时器、tasklet 和 kthread 之间锁定

c - 使用 struct timespec 检索 Linux 时间

linux - Sudo profile.d 中的 bash 脚本

linux - 在 bash 中打印字母表

linux - Bash:IF 和 ELSE,比较和逻辑或门?