当简单地`| cat -`,我收到文件描述符错误

当简单地`| cat -`,我收到文件描述符错误

这是工作 diff 命令:

$ diff -u <(echo 'foo:bar:baz' | tr : "\n") <(echo 'foo:baz' | tr : "\n")
--- /dev/fd/11  2023-08-30 13:11:50
+++ /dev/fd/13  2023-08-30 13:11:50
@@ -1,3 +1,2 @@
 foo
-bar
 baz

我从 中添加管道的任何内容diff,每个命令都会失败并出现以下错误:

$ diff -u <(echo 'foo:bar:baz' | tr : "\n") <(echo 'foo:baz' | tr : "\n") | command cat -
diff: /dev/fd/11: Bad file descriptor

使用command cat -而不是cat -在 shell 插件执行“魔法”的情况下使用。

谁能解释一下为什么我应该做什么来解决这个问题?

答案1

我发现这diff是我在本地定义的函数,以确保彩色差异。我仍然无法解释为什么这会引起问题。但是,我的解决方法是简单地使用command diff而不是diff.

相关内容