如果diff命令工作,它不工作,如何构建一个条件?



我使用bash脚本检索两个文本文件之间的差异:

# Do the match between the text files                                                                                                                                                                                                                                                                                  
   echo " "
   echo "match with diff: "
   echo " "
   diff -s FromRucio_$NAME.txt  FromFolder_$NAME.txt
   diff -q FromRucio_$NAME.txt  FromFolder_$NAME.txt
   echo ""
   echo "this is the missing files between the files"
   echo "sample: $NAME n" >> totalresult_test.txt
   sort FromRucio_$NAME.txt FromFolder_$NAME.txt|uniq -u >> totalresult_test.txt
#  diff --brief <(sort file1) <(sort file2)                                                                                                                                                                                                                                                                               
   echo "_____________________________________________________________________________________"
   echo " "

注意:diff命令被执行,但是当diff -s传递diff -q时会产生一些输出,反之亦然。如何才能避免这种情况?我的意思是,当其中一个生成输出并传递下一个命令diffline时,生成一个布尔条件。

我想创建一个条件(可能只是一个布尔变量驱动)检索输出信息从"sort(…)"diff -q命令起作用时的行

我希望在totalresul_test.txt中添加新的行,其中包含样例名称和从sort-line bash命令中丢失的查找文件。}

你只需要"diff -q"测试布尔测试

$ ?不同时为1,相同时为0。

你可以围绕它构建你的逻辑。

#!/bin/sh
diff -q test_45.sh test_45_dup.sh >>/dev/null
if [ $? -eq 1 ]
then
    echo "report diff"
else
    echo "no action"
fi