关于linux cmp的问题。在网上看到一个关于cmp -s的例子,百撕不得骑姐。
发布网友
发布时间:2022-04-25 03:04
我来回答
共1个回答
热心网友
时间:2023-10-22 15:22
不是这样的
if COMMAND的语义是, 如果COMMAND执行成功, 而linux下面成功的标志往往是0.
也就是说COMMAND返回0的话, 就继续执行, 否则执行else。
这一点和C、JAVA这些编程语言是相反的。追问哦,受教
那如果再分,str=`cmp -s prog.c.bak prog.c`
如果str=1就是不同的
str=2就是执行有误是这个意思吧?
还有个问题就是比较两个文件,在什么情况下会发生错误呢?
文件损坏?无权限之类的么?
追答不是的。。。
str=`cmp -s prog.c.bak prog.c`得到的是cmp命令的“输出”, 而不是返回值!
要得到返回值需要这么做:
cmp -s prog.c.bak prog.c
return_value=$?