如何数组长度分配给一个变量在bash
问题描述:
我试图写一个简单的bash脚本,将整数和供应的总和。我想最简单的方法是将输入分配给一个数组。然后遍历数组以执行求和。我需要使用数组的长度在我的for循环,不能弄清楚如何数组长度分配给一个变量。如何数组长度分配给一个变量在bash
赞赏这个简单的脚本任何帮助(我做到了学习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 "< ")
答
你只是有一个语法错误。 =
之前删除空格:
num = ${#input[@]} # causing error
变为:
num=${#input[@]} # works
请注意,如果您使用=
运营商分配给一个变量在bash,必须不存在前后=
this entry about Variable Assignment in the Advanced Bash-Scripting Guide读
[下面是详细信息](http://tldp.org/LDP/abs/html/varassignment.html)上分配CON在击:) – summea 2013-05-01 18:10:23
ventions你说“导致错误”;知道它造成了什么错误会很有帮助。 – msw 2013-05-01 18:16:39
@msw - 已经解决了。感谢您的反馈。错误是: 线10民:未找到命令 线11:((:I ZenStunna 2013-05-01 18:37:31