#!/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 循环的语法是有效的。
旁注:由于您使用的是较旧的版本[
,因此[[
您应该引用file1
和file2
变量以防止pathname expansion
破坏word splitting
您的[
命令。