cmp-命令用于三个文件

cmp-命令用于三个文件

我想使用 bash 中的 cmp 命令比较三个文本文件,如果 file1 与 file2 不同,但 file1 和 file3 完全相同,则执行操作。根据帮助文件,如果文件相同,则 cmp 输出 0;如果文件不同,则 cmp 输出 1,我尝试过:

if [ "cmp -s file1.txt file2.txt" != 0 ] && [ "cmp -s file1.txt file3.txt" == 0 ]; then
#Action
else
#Do nothing
fi

但是,部分条件 if [ "cmp -s file1.txt file2.txt" != 0 ]甚至不能用作单个 if 条件,第二个条件也不能,因为如果两个文件相同或不同,它们的行为方式相同。我究竟做错了什么?

答案1

您正在将文字文本cmp -s file1.txt file2.txt与字符串进行比较0,而字符串永远不会匹配。用这个代替,

if ! cmp -s file1.txt file2.txt && cmp -s file1.txt file3.txt
then
    #Action
fi

相关内容