linux - Bash 脚本添加参数中收到的数字

标签 linux bash sum arguments

要求是当调用脚本时如下:

my_script.sh 1 2 3 4

脚本应该能够将这些数字相加并在最后打印总和。

num=0
for arg in "$@"
do
  for number in $arg
  do
    (( num += $number ))
  done
done

我已经按照上面的方式编写了脚本,但没有得到所需的输出。

最佳答案

您的脚本没有输出任何内容。尝试添加

echo $num

最后。

但是您的脚本可以简化。正如所写,您的脚本将适用于像

这样的输入
my_script.sh 1 '2 3' 4

同样,它首先循环遍历参数(for arg in "$@"),然后也循环遍历每个参数中的所有单词(for number in $arg)。您不需要第二个循环。

此外,将结果命名为 $sum 似乎可以更好地解释其目的。因此,您只需输入

#!/bin/bash
sum=0
for number in "$@" ; do
    (( sum += number ))
done
echo $sum

关于linux - Bash 脚本添加参数中收到的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55092918/

相关文章:

c - 当通过 Socket 发送数据时,send/write 何时返回 -1?

python - 无法使用 python 3.5 安装 opencv 3.1,仅适用于 2.7

linux - 如何查找嵌套目录?

Python:列表是否包含 3 个相加为 7 的连续整数?

python - 在linux上与windows上不同的sqlite中存储空的python元组

java - C 或 Java 的 Linux 无线 API

bash - 在 $variable 后面添加一个逗号

linux - 每半小时检查一次,看看if条件是否为真

mysql - 求别名的总和,然后分组

node.js - 使用 mongodb 汇总所有文档