3

我正在尝试编写一个简单的 bash 脚本来添加整数并提供总和。我认为最简单的方法是将输入分配给数组。然后遍历数组进行求和。我需要在我的 for 循环中使用数组的长度,并且无法弄清楚如何将数组长度分配给变量。

对简单脚本的任何帮助(我为学习 bash 所做的)

#!/bin/bash
# add1 : adding user supplied ints

echo -n "Please enter any number of integers: "
read -a input

echo "Your input is ${input[*]}"
echo "${#input[@]} number of elements"

num = ${#input[@]}   # causing error
for ((i = 0; i < "${num}"; ++i )); do  # causing error
  sum = $((sum + input[$i]))
done

echo "The sum of your input is $sum"

这会产生错误:

line 10: num: command not found 
line 11: ((: i < :syntax error: operand expected (error token is "< ")
4

1 回答 1

9

你只是有一个语法错误。删除之前的空格=

num = ${#input[@]}   # causing error

变成:

num=${#input[@]}   # works

请注意,如果您使用=运算符分配给 bash 中的变量,则前后不得有任何空格=

阅读Advanced Bash-Scripting Guide 中关于变量赋值的这篇文章

于 2013-05-01T18:08:36.830 回答