我正在尝试编写一个简单的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 "< ")
答案 0 :(得分:7)
您只是语法错误。删除=
之前的空格:
num = ${#input[@]} # causing error
变为:
num=${#input[@]} # works
请注意,如果使用=
运算符分配给bash中的变量,则=
阅读this entry about Variable Assignment in the Advanced Bash-Scripting Guide