如何在bash中为变量赋值数组长度

时间:2013-05-01 18:03:39

标签: bash

我正在尝试编写一个简单的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 "< ")

1 个答案:

答案 0 :(得分:7)

您只是语法错误。删除=之前的空格:

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

变为:

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

请注意,如果使用=运算符分配给bash中的变量,则=

之前和之后不得有任何空格

阅读this entry about Variable Assignment in the Advanced Bash-Scripting Guide