2016-09-12 35 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

好听,那么你应该接受答案。 –