【发布时间】:2019-03-10 22:10:02
【问题描述】:
要求是脚本调用时如下:
my_script.sh 1 2 3 4
脚本应该能够添加这些数字并在最后打印总和。
num=0
for arg in "$@"
do
for number in $arg
do
(( num += $number ))
done
done
我已经编写了上面的脚本,但没有得到想要的输出。
【问题讨论】:
要求是脚本调用时如下:
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
【讨论】: