[英]output from diff whist in if statement? [duplicate]
这个问题已经在这里有了答案:
我正在使用diff
操作来检查几个文件,但想知道是否可以同时使用它来触发事件(例如, echo
将行连接到终端等),而不必“手动”检查是否存在输出报告。
我曾考虑过使用报表创建作为触发器,但是据我所知,无论如何都会创建该文件,如果没有差异,该文件将为空吗?
基本上,是否有可能在if
语句diff
输出文件,以保持我的bash配置文件和脚本本身尽可能整洁?
(如果有帮助,这是我在该问题中获得的出色帮助的后续问题: 下次ssh登录时的通知 )
例如有什么效果吗?
if [ diff filex filey > report.txt == true ]
# So the report.txt is created but the 'state' of
# the diff query is preserved and evaluated...
then echo "Files are different"
else
break
fi
希望有道理。
这是在Ubuntu bash FYI中。
是的, diff
出口为0的状态,如果没有差异列表(这是壳“真”),所以你可以做这样的:
if ! diff <file1> <file2>
then
do the thing when there are diffs
else
do the thing when all is same
fi
即使您重定向输出,这也应该起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.