2016-09-12 36 views
0

我寫了一個shell程序,它讀取兩個文件的字符串比較。bash shell:字符串比較的可變輸出問題

字符串比較成功,但未能輸出比較字符串。

echo $ line, ${array [a]}甚至沒有輸入$行輸出。

要驗證問題是否可變,它改變了前面的順序,這次${array [a]}尚未輸出。

兩者如何在同一時間打印。

請諮詢。

代碼:

a=0  
count=0 
while read line  
do  
    count=`expr $count + 1`   
    if [ $count -gt 6 ]   
    then      
     array[count]=$line 
    fi 
done < $FILE2 

while read line 
do 
     a=`expr $a + 1` 

       if [ $a -gt 6 ] && [ $a -le 10 ] 
       then 
         if [ "$line" != "${array[a]}" ] 
           then 
             echo $line, ${array[a]} 
         fi 
done < $FILE1 

+0

有代碼的最後一行之前缺少'fi' ......它可能是錯過了..無論哪種方式,http://www.shellcheck.net/將捕獲這樣的語法錯誤,然後在給定的腳本中提出改進 – Sundeep

回答

0

我修正了幾個語法錯誤。以下工作對我來說:

a=0 
count=0 
while read line  
do 
    count=`expr $count + 1` 
    if [ $count -gt 6 ] 
    then 
     array[$count]=$line 
    fi 
done < $FILE2 

while read line 
do 
     a=`expr $a + 1` 

       if [ $a -gt 6 ] && [ $a -le 10 ] 
       then 
         if [ "$line" != "${array[a]}" ] 
           then 
             echo $line, ${array[a]} 
         fi 
       fi 
done < $FILE1 

固定缺少fi缺少$array[count]和...

+0

它缺少「fi」是我的錯誤。代碼被寫入。 –

+0

好聽,那麼你應該接受答案。 –