数组 – 使用bash中的数组元素进行算术运算
发布时间:2020-12-15 21:18:28 所属栏目:安全 来源:网络整理
导读:我正在使用bash并尝试添加从文件创建的数组的所有元素. while read line; do array=($line); sum=0 length=${#array[@]} for i in ${array[@]:0:$length}; do sum=$[$sum+${array[i]}] #--- this doesn't work? done echo $sumdone $1 编辑: 我应该更清楚为
我正在使用bash并尝试添加从文件创建的数组的所有元素.
while read line; do array=($line); sum=0 length=${#array[@]} for i in ${array[@]:0:$length}; do sum=$[$sum+${array[i]}] #<--- this doesn't work? done echo $sum done < $1 编辑: 输入可以是——>大卫34 28 9 12 我想打印—>大卫83 所以我想循环遍历所有元素接受第一个.所以我会用: length=$[${#array[@]} - 1] for i in${array[@]:1:$length} 因为这个我不能用: for i in "${array[@]}" 解决方法
尝试使用expr添加两个表达式,如:
sum=$(expr "$sum" + "${arr[i]}") 要么 sum=$((sum + arr[i])) echo "11 13" >test.txt echo "12" >>test.txt while read -a line; do ##read it as array sum=0 for ((i=1; i < ${#line}; i++)); do ##for every number in line sum=$(expr "$sum" + "${line[i]}") ## add it to sum done echo $line[0] $sum ##print sum done < test.txt Output 36 OP编辑后: echo“ABC 11 13”> test.txt while read -a line; do ##read it as array sum=0 for ((i=1; i < $((${#line[@]})); i++)); do ##for every number in line sum=$(expr "$sum" + "${line[i]}") ## add it to sum if [[ $i -eq $((${#line[@]}-1)) ]] then echo "${line[0]} $sum" ##print sum sum=0 fi done done < test.txt Output: ABC 24 DEF 12 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |