这是工作 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
.