用于比较文件和打印格式化输出的shell脚本

1 linux bash shell

我正在尝试编写一个比较两个文件的shell脚本,如果之间没有差异,则表示成功,如果存在差异,则表明存在失败,并打印结果.这是我到目前为止所拥有的:

result = $(diff -u file1 file2)

if [ $result = "" ]; then
    echo It works!
else
    echo It does not work
    echo $result
fi
Run Code Online (Sandbox Code Playgroud)

谁知道我做错了什么???

Bil*_*win 5

result=$(diff -u file1 file2)

if [ $? -eq 0 ]; then
    echo "It works!"
else
    echo "It does not work"
    echo "$result"
fi
Run Code Online (Sandbox Code Playgroud)

建议:

  • =变量赋值中的" " 周围没有空格results
  • $?运行后使用状态变量diff而不是字符串长度$result.
  • 我习惯使用反引号代替命令替换$(),但@Dennis Williamson引用一些很好的理由来使用后者.谢谢丹尼斯!
  • 应用评论中的每条建议引用.
  • 将" =" 更改为" "以-eq进行数字测试.