我的简单脚本发生了什么?

我的简单脚本发生了什么?
#!/bin/bash
while read file1; do
     while read file2 : do
    if [ $file1 == $file2 ] ; then
    $file1 >> /infanass/dev/admin/test/newlist.txt
    fi
    echo "$file1"
    echo "$file2"
 done < /infanass/dev/admin/test/file2.txt
done < /infanass/dev/admin/test/file1.txt

错误 :

 ./test.bsh: line 9: syntax error near unexpected token `done'
 ./test.bsh: line 9: `    done 3</infanass/dev/admin/test/file2.txt'

答案1

在第 3 行你有

while read file2 : do

它应该读

while read file2 ; do

所以你的 while 循环的语法是有效的。

旁注:由于您使用的是较旧的版本[,因此[[您应该引用file1file2变量以防止pathname expansion破坏word splitting您的[命令。

相关内容