Linux Bash-添加两个数组变量';到第三个数组';s变量

Linux Bash-添加两个数组变量';到第三个数组';s变量,linux,arrays,bash,Linux,Arrays,Bash,我有三个数组A、B、C。正在从文件中解析数组A-B值,我希望它们相加到数组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

我有三个
数组A、B、C
。正在从文件中解析数组A-B值,我希望它们相加到
数组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

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

并始终双引号引用变量以避免出现错误。

行:

    C[i]=`expr ${A[i]} + ${B[i]}`
而如果两个操作数中缺少一个,则给出一个错误。 如果这是预期的,即文件中有空字段,则:

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

应该可以工作。

您可以粘贴完整的错误输出吗?@loushui complete error output:./getSum.sh行131:635:找不到命令。。(635是数组B的值)@louxiu在第一个
echo
处输出正确的值,但在错误输出处没有显示数组A的值..不知道。。。粘贴输入文件怎么样?我不能重现这个问题。我运行了你的脚本,它按预期工作。在真实的剧本中一定有你没有表现出来的东西。
   C[i]=$((${A[i]:-0}+${B[i]:-0}))