Bash 为什么';append命令在我的脚本中不起作用吗?

Bash 为什么';append命令在我的脚本中不起作用吗?,bash,solaris,Bash,Solaris,我在solaris的bash脚本中有以下代码,其中>(append)不起作用: for j in $(cat file1.txt); do for i in $(cat file2.txt); do if [ "$j" = "$i" ]; then echo "_$i" >> file3.txt fi done done 我不知道为什么不生成file3.txt如果在运行脚本时没有显示错误消息,则>重定向工作正常。问题是使用它的线路恰好

我在solaris的bash脚本中有以下代码,其中
>
(append)不起作用:

for j in $(cat file1.txt); do
    for i in $(cat file2.txt); do
    if [ "$j" = "$i" ]; then
        echo "_$i" >> file3.txt
    fi
    done
done

我不知道为什么不生成
file3.txt

如果在运行脚本时没有显示错误消息,则
>
重定向工作正常。问题是使用它的线路恰好从未被调用

替换

if [ "$j" = "$i" ]; then


要确认它(假设
file1.txt
file2.txt
都不是空的)。

如果删除
>file3.txt
,它是否打印任何内容?它本身并没有回答问题,但您可以使用“comm”命令执行相同的操作-您的输入文件可能不同,也就是说,每个输入文件的行
n
是不同的。不仅是每行,似乎两个文件中的每个单词都是不同的。
$(cat file.txt)
的输出将进行分词,因此第一个文件中的每个字都将与第二个文件中的每个字进行比较。这是否应该是
“$j”==“$i”
?或
“$j”!=“$i”
if [ "$j" != "$i" ]; then