2012-12-01 128 views
0

我有三個arrays A, B, C。陣列A-B值正在從文件中解析出來,我希望它們合併成array CBash-將兩個數組變量加到第三個數組的變量

#!/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 
+0

您可以粘貼完整的錯誤輸出嗎? – louxiu

+0

@louxiu完整錯誤輸出:./getSum.sh行131:635:找不到命令..(635是數組B的值) – teutara

+0

A的值是什麼? – louxiu

回答

0

腳本看起來正常。您可能無法正確構建陣列。

並總是雙引號,以避免出現一些錯誤。

1

行:如果兩個操作數之一是缺少

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

,同時給出一個錯誤。 如果預期,即具有空字段中的文件,然後:

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

應該工作。