当前位置: 首页 > 知识库问答 >
问题:

如何在bash中忽略diff的输出

洪开济
2023-03-14

我尝试比较两个文件并输出自定义字符串。以下是我的脚本。

#!/bin/bash

./${1} > tmp

if ! diff -q tmp ans.txt &>/dev/null; then
    >&2 echo "different"
else
    >&2 echo "same"
fi

当我执行脚本时,我得到:

sh cmp.sh ans.txt
different
Files tmp and ans.txt differ

奇怪的是当我输入< code>diff -q tmp ans.txt时

如何修复它(我不想看到行:“文件tmp和ans.txt不同”)?谢谢

共有1个答案

戚永福
2023-03-14

很可能您正在使用的sh版本不理解bash(已弃用/过时)扩展

不喜欢使用

if cmp -s tmp ans.txt; then

 类似资料:
  • 这些变化都是形式上的 其中“main()”可以是任何函数的名称。我想生成不是这种形式的所有变化的差异。 git diff的-g和-s选项非常接近--它们查找与字符串或正则表达式匹配的更改。 我还注意到,标准unix diff有-I选项来“忽略所有行都匹配re的更改”。但是我找不到用unix diff工具替换Git自己的diff的正确方法。

  • 我正在使用一个regex来验证angular2应用程序中的一些内容: 我只想允许数字(0-9)和字母F,N,K,J,K和J应该是可选的,F和N必须正好在里面一次。 有人知道吗,如何忽略字母和数字的顺序?不,它只是匹配,如果我完全按照以下顺序插入字符:012FNKJ。KJFN012根本不匹配。:(

  • 问题内容: 我有以下代码: 我想执行:即使(上面的行)抛出异常。除了: 我连续有很多test.setSomething,它们都可能引发异常。如果他们这样做,我只想跳过这一行,移至下一行。 为了澄清起见,我不在乎它是否引发异常,并且我无法编辑引发此异常的代码的源代码。 这是我不关心例外的情况(请不要使用通用量化的语句,例如“您永远不要忽略异常”)。我正在设置某些对象的值。当我向用户提供值时,无论如何

  • 我想让我的Bash脚本对最终用户来说更加优雅。当Bash执行命令时,如何隐藏输出? 例如,当Bash执行时 以下内容将显示给执行Bash的用户: 现在我想对用户隐藏这一点,而是显示: 我怎样才能完成这项任务?我一定会帮助使脚本更加用户友好。如果发生错误,则应向用户显示。 我想知道如何显示相同的消息,而一组命令正在执行。

  • null 对于第二个选项,我使用MessageHandler: 每当我的模型(函数)返回适当的标记时,我想输入其中一个ConversationHandlers,但不知道如何执行。