0
我使用的是使用cmp
命令检查两个文件是相同的返回码。我想将这个命令粘贴到一条语句中,但它不能按预期工作。当比较两个文件,一个文件不存在,cmp
回报2。由于2是非零的,我希望if语句,以评估为真,但它不,我不明白为什么。击:在if语句会导致意外的行为
我想写类似:因为我觉得它很短,甜,更直观
if cmp -s tickets.txt tickets_orig.txt; then
#do stuff here
fi
。这可能吗?
我能够利用$?
创建变通但我不懂为什么低于代码评估真以上代码将值为false当命令返回2:
cmp -s tickets.txt tickets_orig.txt
if [ $? -ne 0 ]; then
#do stuff here
fi
“自2是非零的,我希望if语句,以评估为真” - '0'表示击成功。你的'if'块只会在文件完全相同的情况下执行。反转条件:“如果! cmp -s tickets.txt tickets_orig.txt;然后...' – 0x5453