如何缩短这个?:首先阅读|| 1号出口; (echo“$ first”; cat)| $食品

时间:2010-11-12 14:42:16

标签: shell diff pipe

如果没有输入,目标是甚至不启动$ foo。

如果foo =“diff - xyz”,输入缺失或为空,这可能很有用。 否则,diff将输出所有“xyz”作为差异。

最初的问题是“cat doesnotexist | diff - exists”输出“exists”的内容(以“>”为前缀),而我希望整个管道失败。 我目前的解决方案是:

cat doesnotexist | (read first|| exit 1; (echo "$first"; cat) | diff - exists)

,但我想要一个较短的。

1 个答案:

答案 0 :(得分:0)

[ -f doesnotexist ] && diff doesnotexist exists

我删除了管道,它在您的示例中没有附加值。严格来说,这不会让差异失败,它只是没有被执行。