首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用diff3时将选项传递给diff命令

如何在使用diff3时将选项传递给diff命令
EN

Stack Overflow用户
提问于 2017-11-02 17:20:14
回答 1查看 256关注 0票数 1

diff支持diff3在macOS Sierra上不支持的选项。例如,diff支持忽略空格更改的-b选项,但diff3不支持。

但是,diff3支持选项--diff-program,我认为它可以用来传递一个程序,该程序将使用所需的选项调用diff

因此,我创建了一个像这样的程序mydiff

代码语言:javascript
复制
diff -b $1 $2

但是,当在命令行上运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,我得到了以下错误:

代码语言:javascript
复制
diff: missing operand after `--'
diff: Try `diff --help' for more information.
diff3: subsidiary program `./mydiff' failed

如何解决这一问题?

是否有一种方法可以避免创建mydiff并通过设置--diff-program=...直接在命令行中传递选项?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-02 18:27:27

问题是diff3将使用以下参数调用指定的diff命令:--horizon-lines=100 -- F1 F2,其中F1F2是文件参数。您编写mydiff的方式,当您运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,它将被执行:

代码语言:javascript
复制
diff -b --horizon-lines=100 --

如果你运行这个,你会得到同样的错误。

编写mydiff的正确方法

代码语言:javascript
复制
#!/bin/sh

diff -b "$@"

不,不幸的是,没有办法以内联的方式编写diff -b,您需要创建一个专用的脚本来使它与diff3一起工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47081136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档