0

我有三个arrays A, B, C。数组 AB 值正在从文件中解析,我希望它们加起来array C

#!/bin/bash
i=0
A=()
B=()
C=()
while read line
do
  A[i]="$(echo $line| cut -d\  -f4)"
  B[i]="$(echo $line| cut -d\  -f11)"
  echo ${A[i]} " and " ${B[i]}
  # outputs correct values
  C[i]=`expr ${A[i]} + ${B[i]}`
  echo ${C[i]} 
  # no output
  i=$((i+1))
done < ~/file
exit 0

那个任务有什么问题?

脚本的完整行:

hitEnd[i]=`expr ${hitLength[i]}+${hitStart[i]}`
echo "${hitEnd[i]}"
#no output
4

2 回答 2

1

该行:

    C[i]=`expr ${A[i]} + ${B[i]}`

如果两个操作数之一丢失,则给出错误。如果这是预期的,即文件中有空字段,那么:

   C[i]=$((${A[i]:-0}+${B[i]:-0}))

应该管用。

于 2012-12-01T08:42:13.223 回答
0

脚本看起来正确。您可能无法正确构造数组。

并且总是双引号变量以避免一些错误。

于 2012-12-01T07:45:10.780 回答